【发布时间】:2017-02-15 13:51:54
【问题描述】:
AsyncPipe 与 BehaviorSubject 一起使用,但我不想用空数据初始化我的服务,因此我使用 Subject intead。
问题是 NgFor 和 asyncPipe 不适用于 Subject,这是一个问题吗?
这行得通:
组件:
export class AppComponent {
foo = new BehaviorSubject<Array<number>>([1,2,3]);
getFoo(){
return this.foo.asObservable();
}
}
模板
<span *ngFor="let e of foo.asObservable() | async">{{e}}</span>
这不起作用:
组件
export class AppComponent {
foo = new Subject<Array<number>>();
constructor(){
setTimeout(() => {
this.foo.next([1,2,3]);
}, 3000);
}
getFoo(){
return this.foo.asObservable();
}
}
模板
<span *ngFor="let e of foo.getFoo() | async">{{e}}</span>
【问题讨论】:
-
你能提供一个小提琴/plunk来复制这个问题吗?
-
查看更新@estus
-
我猜问题是
.asObservable(),它不应该在那里。
标签: angular rxjs angular2-template behaviorsubject subject-observer