angular - Angular 2 中的 Observable 和 ngFor

标签 angular rxjs

下面是一个使用 rxjs Observables 的简单示例 Angular 2 组件。

import { Component , OnInit } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import  'rxjs/add/observable/of';

    @Component({
    selector:'ob',
    template: `

    <ul>
        <li *ngFor="let x of obj | async">
            {{x}}
        </li>
    </ul>    
    `
})

export class ObComponent implements  OnInit{

obj:Observable<number>;

ngOnInit() {
this.obj = Observable.of(1,2,3,4);
}

} 

该组件抛出以下错误

inline template:15:12 caused by: Cannot find a differ supporting object '4' of type 'number'. NgFor only supports binding to Iterables such as Arrays.

知道可能是什么问题吗?

最佳答案

Observable.of 。按序列发出值,因此 *ngFor 通过异步接收单个值,而不是 *ngFor 期望的数组。

使用

obj:Observable<number[]>;//declare

Observable.of([1,2,3,4])

关于angular - Angular 2 中的 Observable 和 ngFor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42856913/

相关文章:

javascript - 将文件对象转换为 <img> Angular

javascript - 在可观察订阅上运行函数

angular - 从 id 与 rxjs Angular Firestore 合并可观察值

javascript - &lt;script&gt; 标签元素不适用于 Angular 2 CLI 创建的应用程序

reactive-programming - RxJs Observable 无限滚动或如何组合 Observables

angular - 有条件地应用管道运算符

angular - 如果我没有捕获订阅,它会抛出错误吗?

Angular 2 [ngSwitchCase] 不支持负值?

Angular,如何从字符串解析模板并传递当前上下文变量

angular - 开发浏览器加载时间慢 - 减小 vendor.js 文件大小?