はい、別の回答で指摘されているように、subscribe
ハンドラ内にstatus
と設定する必要があります。しかし、これはまた、観察可能物がその最初のアイテムを放出するまで、status
が全く設定されないことを意味する。私はあなたが
STATUS IS {{status$ | async}}
にステータスを表示したり、表示が観察されるまでwaiting
になり、あなたのテンプレートで今
this.status$ = this.propertyService.getProperties()
.startWith(false)
.map(b => b ? 'active' : 'waiting');
ようなもので成し遂げることができ、自身status
が観察することの代替としてお勧めしたいです最初に発砲する。あなたはイベントハンドラでstatus
の現在の値にアクセスする必要がなければならない場合は、観察と、同じようにproperties
を扱う場合
、あなたは、
logStatus() {
this.status$.take(1).subscribe(s => console.log("status is", s);
}
でそうすることができる
ngOnInit() {
this.properties$ = this.propertyService.getProperties();
this.status$ = this.properties$.startWith(false).map(b => b ? 'active' : 'waiting');
}
あなたはngOnInit
の登録をすべて避けることができます。これは覚えておいてからngOnDestroy
に取り壊す必要があります。
ありがとうございます - それは完璧に働いた – rhysclay