AsyncPipeはBehaviorSubjectで動作しますが、空のデータでサービスを初期化したくないため、Subject inteadを使用します。Angular 2.0.1 AsyncPipeがRx Subjectで動作しない
問題は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>
問題を再現するためにフィドル/プランクを提供できますか? – estus
update @estusを参照してください。 – Serginho
問題は '.asObservable()'だと思います。 – estus