Angular 如何将ngFor与角度中的可观察对象一起使用?
我无法使用*ngFor从我的可观察对象发送数据 我的数据服务中有以下呼叫:Angular 如何将ngFor与角度中的可观察对象一起使用?,angular,typescript,observable,ngfor,Angular,Typescript,Observable,Ngfor,我无法使用*ngFor从我的可观察对象发送数据 我的数据服务中有以下呼叫: completedTasks(): Observable<Array<Todo>> { return this.aHttpService.get<Array<Todo>>( 'http://localhost:3000/todos?complete=true'); } completedTasks():可观察的为了
completedTasks(): Observable<Array<Todo>> {
return this.aHttpService.get<Array<Todo>>(
'http://localhost:3000/todos?complete=true');
}
completedTasks():可观察的为了从中获取任何数据,您需要对一个可观察的进行修改。您的代码基本上是正确的。下面是一个输出可观察对象数组的工作示例
我唯一不同的做法是在ngOnInit()
期间将completedTodos
指定为视图模型属性。这可以防止在每个变更检测周期中创建可观察对象
或者,如果您想使用getter,您可以使用OnPush的changedtectionstrategy
[更新]
我更改了示例代码以从中检索todo列表:因此它会发出实际的GET请求。不应该让已完成任务的todo
成为让已完成todo的todo
?@Brandon应该,谢谢。更正。我建议存储this.todoDataService.completedTasks()的结果在变量中使用code>,而不是使用get
,否则它将在每次更改检测循环中被调用,就像服务调用返回单个JSON对象而不是对象数组一样。async
管道确实订阅了一个可观察对象:我在下面(可能是错误的)给人的印象是,async
进行订阅…@Nick Hodges他们确实订阅了。
get completedTodos(): Observable<Array<Todo>> {
return this.todoDataService.completedTasks();
}
<li *ngFor="let todo of completedTodos | async" >
... stuff here
</li>