gpt4 book ai didi

javascript - Angular:将通过 API 检索到的 JSON 对象的数组分配给变量

转载 作者:数据小太阳 更新时间:2023-10-29 05:31:33 26 4
gpt4 key购买 nike

我正致力于通过 Google Blogger API 加载博客提要并在组件中显示结果。我无法弄清楚如何将 { "items":[] } 数组分配给 posts 变量以显示帖子。这是我所拥有的:

组件:

import { Component, OnInit } from '@angular/core';
import { FeedService, Feed } from './feed.component.service';
import { Observable } from 'rxjs/Observable';

@Component({
selector: 'feed',
templateUrl: './feed.component.html',
styleUrls: ['./feed.component.scss']
})
export class FeedComponent implements OnInit {
constructor(private feedService: FeedService){ }
feed: Feed;
posts: string[];

ngOnInit(){
this.feed = this.feedService.loadFeed();
this.posts = this.feed['items'];
}
}

服务:

import { Injectable } from '@angular/core';
import { Http, Response, Headers, RequestOptions } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import { Feed } from './feed.component.service';

import 'rxjs/add/operator/map';

export interface Feed {
[key: string]: any;
}

@Injectable()
export class FeedService {
constructor(private http: Http){ }
loadFeed(): Observable<Feed> {
const headers = new Headers();
headers.append('Content-Type', 'application/json');

const options = new RequestOptions({ headers: headers });

return this.http
.get('https://www.googleapis.com/blogger/v3/blogs/3213900/posts?key=AIzaSyDDF7BymSIZjZKJ5x_FCLnV-GA1TbtIyNI', options)
.map(response => response.json().data as Feed);
}
}

和 HTML(也使用 Bootstrap 4):

<button class="btn back">Back</button>
<div class="header">
<div class="container">
<div class="row">
<h1>feed</h1>
</div>
</div>
</div>
<div class="post">
<div *ngFor="let post of posts">
<h1> {{ post.title }} </h1>
<p> {{ post.content }} </p>
</div>
</div>
<div class="footer">
<div class="container">
<div class="row">
</div>
</div>
</div>

JSON 返回一个键“items”:[],其中包含帖子的对象数组。每个帖子中都有一个标题和内容键。我无法显示任何帖子。非常感谢任何帮助。

最佳答案

//here
this.feed = this.feedService.loadFeed();
this.posts = this.feed['items'];

您正在调用该方法,因为它是同步调用。

this.feedService.loadFeed() 返回一个 Observable,您必须订阅流并在数据可用时将其分配给您的上下文。

this.feedService.loadFeed().subscribe(resp => this.posts = resp.items)

关于javascript - Angular:将通过 API 检索到的 JSON 对象的数组分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46581508/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com