私は、オブザーバブルにバインドできるカスタムコンポーネントを記述しようとしていますが、オブザーバブルの状態に基づいて入力と表示/非表示の要素を渡すことができます。私は何をできるようにしたいと思いますがのようなものです:観測可能なサブスクリプションで関数を実行
this.observable.let((o: Observable) => {
// run logic.
return o;
});
しかし、この:
@Input() observable: Observable<any>;
ngOnInit() {
this.observable.onSubscribe(() => {
// show element, run logic on start;
});
this.observable.onCompleteOrNext(() => {
// hide element, run logic on end;
});
}
rxjsのドキュメント上で注いだ後、私はletと私のような何かができることを発見しましたちょっとしたハックのように思えますし、観測が完了したら何かを実行する方法もわかりません。私は、オブザーバブルがHTTPリクエストなどの非同期であることを期待していますが、このコンポーネントはどちらの方法でも処理する必要があります。完成に観察するために
、私はdo機能で、以下のような何かを行うことができるだろうと想定:do
機能は、これはなっていない、観察可能な作成時に定義されていない限り
this.observable.do(() => {
// run logic when observable completes.
// not getting called.
});
しかし、と呼ばれる。
私は、Angular2ではビューを直接オブザーバブルにバインドすることができますが、ビュー要素の表示/非表示だけでなく、オブザーバブルビューに基づいてロジックを実行する必要もあります。
私のgooglefooは失敗していて、rxjsのドキュメントはあまり啓発されていませんが、これはかなり簡単なことです。おそらく私はそれが間違っていると思います。あなたは、ChildComponent
への参照を取得し、観察を購読すると、キーのフックメソッドを呼び出すためにViewChild
を使用することができ、親コンポーネントで
export class ChildComponent {
onSubscribe(){}
onNext(){}
onComplete(){}
}
:
たぶん私は何かが欠けていますが、なぜ単に '(サブスクライブしていない)' 'ngOnInit'で、右が' next'、 'ERROR'と' complete'コールバックを指定しますか? – BeetleJuice
さて、私は、このコンポーネントが観測可能なものを購読しないようにしたいと思います。データが返されたもの。それは他の加入者に基づいた状態にあると考えられます。それは理にかなっていますか? – Blunderfest
それは意味があります。どこに登録しますか?親コンポーネントですか? – BeetleJuice