angular - Ngfor和角度插值
问题描述
<div class="container latestNew" *ngFor="let link of links$ | async">
<div class="col">{{ link.title }}</div>
<div class="col">{{ links$[0].title }}</div>
</div>
有人能告诉我为什么link.title有效但links$[0].title无效吗?
解决方案
links$
是一种Observable<Array<T>>
不包含任何值的方法,它只是允许从Subject<Array<T>>
此处捕获值的订阅者。该表达式let in of link$ | async
表示必须等待此块 *ngFor 直到新数组来自Subject
by next(new Array<T>[])
,它将被设置到link
每个接收到的对象中。
在你的情况下,我想你打电话HttpClient
并在你的下面声明一行Component
links$: Observable<Array<Link>>
ngOnInit(): void {
// Retrieve a links list from API
this.links$ = this.httpClient.get<Array<Link>>('http://localhost/api/links')
}
使用此代码,您希望确保links$
在呈现 HTML 之前从 API 检索数据。所以 Angular 为你提供了一个表达式| async
,awaiter
直到你的 API 完成。let link
在一个表达式中帮助您访问每个link
检索到的数据。
推荐阅读
- linux - 将第一个字段作为前缀添加到文本文件中的所有其他字段
- asp.net-core-webapi - .Net core 2.1 中的自定义 Webhook 接收器
- android - 复制 Volley.jar,添加 linkedIn SDK 后,复制 zip 条目 [ik.class == volley.jar:com/android/volley/AuthFailureError.class]
- c++ - 如何将 GPAC(MP4Box) 库添加到 Qt 项目?
- java - 将 RXJava groupby 与连续项目一起使用
- asp.net - 在 Asp.net Web 表单中等效的 MVC 异常过滤器
- javascript - 如何改进 Node.js 中的赋值代码(ES6 风格)
- excel - 如何同时使用 vlookup 和 If 语句来解决 Excel 中的问题?
- here-api - 在 Here API 中的渡轮上包括车辆公里成本
- plugins - 替代 Toast.Forms.Plugin for Xamarin Forms App