0

変更をリッスンしている 2 つのプロパティを持つバックボーン モデルがあります。

this.model.on("change:foo", this.doFoo, this);
this.model.on("change:bar", this.doBar, this);

ただし、foo と bar の両方が同時に変化する瞬間があります。foo が変更された場合にイベントをキャンセルして、foo と bar の両方が変更された場合に doFoo のみを実行することはできますか?

一般的な変更イベントを使用してこれを実行し、変更を調べることができることはわかっていますが、もう少し焼き込まれたものを望んでいます.

this.model.on("change", this.doFooOrBar, this);

目的は複雑なコードを避けることなので、ハックなものがたくさん含まれている場合は、一般的な変更イベントを実行して、それに応じて対応することをお勧めします。これらは、私が監視している 2 つのプロパティのみです。

4

1 に答える 1

0

おそらく匿名関数は許容できる解決策でしょうか?

this.model.on("change", function () {

    if (this.model.hasChanged('foo')) {
        this.doFoo();
    }
    if (this.model.hasChanged('bar') && !this.model.hasChanged('foo')) {
        this.doBar();
    }

});
于 2013-07-01T20:51:23.383 に答える