角度2 temlate与Observable

时间:2017-01-12 21:56:25

标签: angular rxjs

我喜欢在模板上使用ngFor在Angular 2中进行Observable循环,但我收到此错误:

ORIGINAL EXCEPTION: Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays.

这是投掷错误的Plunker:

ngFor in template

<template ngFor let-itemz [ngForOf]="item">
  <div>
    {{itemz.title}} | {{itemz.type}}
  </div>
</template>

我知道构造函数中的代码可能令人困惑,但这只是我所拥有的更大应用程序的简短版本。

我无法转换数组中的Observable,我必须使用Observable。

问题是:我可以使用Observable进行模板ngFor循环,或者我唯一可以使用的是Array吗?

2 个答案:

答案 0 :(得分:2)

您可以使用async pipe在场景后为您订阅和提取数据:

<template ngFor let-itemz [ngForOf]="item | async">
  <div>
    {{itemz.title}} | {{itemz.type}}
  </div>
</template>

https://plnkr.co/edit/imWRlthCOss0HmgwDEqC?p=preview

答案 1 :(得分:1)

您可以使用异步管道打印Observeable:

 <div *ngFor="let itemz of item | async">

https://plnkr.co/edit/FAJCUKVPOlxulszdrZOU?p=preview

好运!