Backbone.EventBinder に関するこの投稿を参照すると、EventBinder を Backbone ビュー (最も一般的な使用例) で使用する方法がわかりません。この投稿で提案されているように、Backbone.View プロトタイプに close() メソッドを追加し、ビューに onClose() メソッドを追加することをお勧めしますか? また、binder.unbindAll() を閉じるときに呼び出すことができるように、バインダー オブジェクトをどこに保存しますか? 子ビューを閉じるための推奨される方法は何ですか (たとえば、関連するモデルに子ビューを持つコレクションの親ビュー)。実際の例は、Backbone.EventBinder プロジェクトに追加するのに最適です。
1 に答える
はい、close
ビューにメソッドを追加する必要があります。EventBinder は、Zombies の投稿の内容を否定するものではありません。むしろ、ビュー内のすべてのイベントのバインドを解除しやすくすることで、多くのプロセスを自動化するのに役立ちます。
使用方法の例については、Marionette.View のソース コードをご覧ください。
https://github.com/marionettejs/backbone.marionette/blob/master/src/marionette.view.js#L9 https://github.com/marionettejs/backbone.marionette/blob/master/src/marionette.view .js#L16 https://github.com/marionettejs/backbone.marionette/blob/master/src/marionette.view.js#L97
Marionette を使用している場合は、close
メソッドを自分で追加したり、イベント バインダーを自分で追加したりする必要はありません。それはあなたのために処理されます。
これを自分のビューに追加したい場合は、簡単です:
MyView = Backbone.View.extend({
initialize: function(){
// add the event binder
this.eventBinder = new Backbone.EventBinder();
// bind some stuff
this.eventBinder.bindTo(this.model, "change:foo", this.doStuff, this);
},
close: function(){
// ... other stuff
this.eventBinder.unbindAll();
}
});