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 回答