TL; DR:Angular2:シングルトンメンバー対観察可能なサブスクリプション
https://plnkr.co/edit/QP5skRU1MJ3ZoOtlA15I?p=preview
は、なぜあなたは、そのサービス内で観測可能にサブスクリプションを介してサービスのローカル変数を使うのでしょうか?それは混乱だ理由の
例:plunkで
、あなたは私は2つのコンポーネントとサービスを持って表示されます。これらの2つのコンポーネントは、そのサービスに存在するObservableを共有します。
サービスでは、私は公開変数を更新し、その値をオブザーバーにプッシュします。
これは私には重複しているようなコードですが、私はAngular2チュートリアルでそれをすべて見ています。
のsrc/number.ts
this.num = {
num: new Date().getTime()
};
this.observer.next(this.num);
なぜ私はどちらか一方をしますか?私はサブスクリプションメソッドを好むが、彼らは同じことをするようだ。私は何が欠けていますか?
注: setIntervalとNgZoneジャンクはデモンストレーション目的でのみ存在します。現実には、このデータはHTTPから来て、変数を更新したり、加入者にプッシュしたりするでしょう。私はちょうど毎秒の時間をつかんだので、NgZoneも使わなければなりませんでした。
ああ!私は今の違いを見る! 'this.prop = 123'を使用しているビューでは、値が変更されたときに更新することはできません。観測可能な状態では、準備ができるまで 'next()'しないか、サブスクリプションコールバックの 'this.prop = 123'より前の値を調べることによって、いつ更新するかを制御できます。 – oooyaya
はい、それは別の使用例です。 –