这是我的服务
getCADataService() : Observable<Currentaffairs[]>{
return this.httpClient.get<Currentaffairs[]>(`${this.url}/sports`);
}
这是我的组件:
getCAdata() {
this.dataservice.getCADataService()
.subscribe(currentAffairs =>
this.currentAffairs = currentAffairs
)
这是我的模板:
<ul>
<li *ngFor="let ca of currentAffairs | keyvalue">
<md-card class="example-card">
<md-card-header>
{{ca.articles.description}}
</md-card-header>
<img md-card-image src="">
<md-card-content>
<p>
</p>
</md-card-content>
<md-card-actions>
<button md-button>Approve</button>
<button md-button>Reject</button>
</md-card-actions>
</md-card>
</li>
</ul>
当在UI中显示数据时,我得到以下错误:
为此,你可以在html
模板中使用?
value将其定义为安全导航操作符,因为当组件加载的可观察对象仍在进行时,它返回为undefined
<ul>
<li *ngFor="let ca of currentAffairs | keyvalue">
<md-card class="example-card">
<md-card-header>
{{ca.articles?.description}}
</md-card-header>
<img md-card-image src="">
<md-card-content>
<p>
</p>
</md-card-content>
<md-card-actions>
<button md-button>Approve</button>
<button md-button>Reject</button>
</md-card-actions>
</md-card>
</li>
</ul>
根据您提供的http响应,似乎应该首先遍历articles
数组或将GET响应映射到文章。
现在你试图访问这里的{{ca.articles.description}}
一个属性description
的数组,这是没有多大意义的。
一个可行的方法是调整这个方法
getCAdata() {
this.dataservice.getCADataService()
.pipe(map((response) => response.articles));
.subscribe(currentAffairs =>
this.currentAffairs = currentAffairs
)
}
这样this.currentAffairs
就是一个数组aricles
本身然后你可以删除keyvalue
管道并这样更改模板
<md-card-header>
{{ca.description}}
</md-card-header>