Angular 如何将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():可观察的为了

我无法使用*ngFor从我的可观察对象发送数据

我的数据服务中有以下呼叫:

    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()的结果,而不是使用
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>