2012-01-24 8 views
0

"all"イベントといくつかのプロパティの変更にバインドすると、 "change:property"イベントとプレーンな "change"イベントという2つのイベントが発生します。私は常にプロパティ固有のイベントをキャッチするので、私はプレーンなものは必要ありません。私はすべての "変更:*"にバインドすることはできません。なぜなら、モデルに追加される可能性のあるプロパティはすべて事前に知っていないからです。だから、model.bind( "all"、...)と一緒にいて、何とか "change"イベントを取り除く方法はありますか?backbone.jsプレーンな「変更」イベント以外のすべてのイベントをどのように捕捉できますか?

P.S.私はハンドラの名前をフィルタリングすることができることを知っている、私は知っているモデルのイベントを宣言またはフィルタリングのより標準的な方法があるかどうかを尋ねている。

+0

この問題は解決されました。それをチェックアウト[ここ] http://stackoverflow.com/questions/18457694/backbone-catch-all-events-except-somehow – nAkhmedov

答えて

2

フィルタを追加することですこの変更イベント中に変更された属性のみのハッシュを返します - see more here)。私はこれがそれを処理する最もきれいな方法だと信じています - 少なくとも、提供された詳細に基づいています。

+0

実際、私はこれを逃した方法を知りません。ありがとう。 – Paralife

2

残念ながら、唯一の方法は、あなただけのchangeイベントを使用して、属性が変更イベントの伝播中(changedAttributesメソッドにアクセスして、それを変更しているかどうか確認することはできません手動で

ModelA = Backbone.Model.extend({ 
    initialize: function() { 
    this.bind('all', this.onChange, this); 
    }, 

    onChange: function() { 
    //apply your filter 
    } 
}); 
+0

別のイベントに別のコールバックを添付したい場合は、別の変更機能を別のイベント。 –

関連する問題