如何将Backbone.EventBinder与视图一起使用

时间:2012-12-03 15:17:49

标签: events backbone.js marionette backbone.eventbinder

参考Backbone.EventBinder上的this帖子,我对如何将EventBinder与Backbone视图(这是最常用的用例)一起使用感到迷茫。是否仍然建议在this帖子中建议将Back()方法的close()方法和onClose()方法添加到视图中?还有哪里存储binder对象,以便可以在关闭时调用binder.unbindAll()?关闭子视图的建议方法是什么(例如,在关联模型上具有子视图的集合上的父视图)。一个工作示例将是Backbone.EventBinder项目的一个很好的补充。

1 个答案:

答案 0 :(得分: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();
  }
});