2017-07-28 5 views
0

私はバックボーンでサイレントイベントを聴く方法はありますか?

this.listenTo(this, 'change:someAttr', this.eventListener); 

のように、特定の属性のためのバックボーンのモデルの'changed'イベントをリッスンするようにしようとしているが、それは静かに変更されているので、通常のイベントのリスニングは動作しません。バックボーンの静かなイベントを聞く方法はありますか?

+4

その理由はありますか?あなたはおそらく、サルパッチバックボーンとオプションを抑制する必要があります –

+0

オプション自体はgeatです。しかし、必要が生じた場合は、手動で上書きすることができればうれしいでしょう。 – Tohveli

+0

これは、ソースコードを上書きする必要があることを意味します。これはオプションを提供する意味がなく、前のオプションの機能を抑制する別のオプションです。あなたが機能を望まないなら、それを使わないでください。この使用例は、既にビルドされているアプリケーションをハックしようとしているように聞こえます。ハックするためのオプションを提供するのはフレームワークの仕事ではありません。あなた自身でそれをやらなければなりません... –

答えて

0

私が考えることができる唯一の方法は、何らかの「ポーリング」、つまりsetInterval経由で何度もチェックすることです。

initialize: function() { 
    this.listenSilent(); 
}, 
listenSilent: function() { 
    var startVal = this.get('myAttr'); 
    var that = this; 
    var silentListener = setInterval(function() { 
     if (that.get('myAttr') !== startVal) { 
      that.trigger('myevent'); // any custom event name that you can listen to 
      stopInterval(silentListener); 
      that.listenSilent(); 
     } 
    }, 100); 
}