4

Backbone.EventBinder に関するこの投稿を参照すると、EventBinder を Backbone ビュー (最も一般的な使用例) で使用する方法がわかりません。この投稿で提案されているように、Backbone.View プロトタイプに close() メソッドを追加し、ビューに onClose() メソッドを追加することをお勧めしますか? また、binder.unbindAll() を閉じるときに呼び出すことができるように、バインダー オブジェクトをどこに保存しますか? 子ビューを閉じるための推奨される方法は何ですか (たとえば、関連するモデルに子ビューを持つコレクションの親ビュー)。実際の例は、Backbone.EventBinder プロジェクトに追加するのに最適です。

4

1 に答える 1

2

はい、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();
  }
});
于 2012-12-04T14:32:44.980 に答える