監視されている計算されたプロパティは、続けて2回変更された場合は発射されません

StackOverflow https://stackoverflow.com/questions/9445676

  •  12-11-2019
  •  | 
  •  

質問

私は以下のようなプロパティで更新しているエムバー。私はなぜこれがどのように修正することができるかについて困惑しています。

dependantChanged: function() {
    console.log('Firing change');
    this.get('_update')(this);
}.observes('primaryDemo', 'Rate', 'Totals'),
.

アップデート:それで、最初の回答とフィドルは問題が何であるかに関して考えることができ、それはオブジェクトのプロパティを変更することが原因です。私はEmberが違いがあるかどうかを確認するためのハッシュチェックをしています。私はすでにアンダースコアJSを使用しているので、プロパティを変更してからセットを実行する前に_.clone(デモ)を使用してください。私はそれをしていないので、これを閉じる前にもっとエレガントな解決策があるかどうかを見るのを待つでしょう。

役に立ちましたか?

解決

primaryDemoを再度設定する必要はありません。 <> は何もしません。あなたはあなたの観察者に通知するためにEmberに指示する必要があります。このfiddle ...

var demo = { Imps: 1, Demo: { Id: 2 } }

var obj = Ember.Object.create({
    dependantChanged: function() {
        console.log('Firing change');
    }.observes('primaryDemo', 'Rate', 'Totals'),
});

obj.set('primaryDemo', demo);
demo.Imps = 2;
obj.set('primaryDemo', demo);

// Notify observers on obj#primaryDemo
Ember.notifyObservers(obj, 'primaryDemo');
.

他のヒント

あなたはより多くの詳細を与えることができますか?私は単純なJSFIDDLEを作成しました。あなたが言うように、うまくいっています。

primaryDemoの値が2連続通話で異なることがわかりますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top