参考 Backbone.EventBinder 上的这篇文章,我不知道如何将 EventBinder 与 Backbone 视图一起使用(这是最流行的用例)。是否仍然建议按照本文中的建议向 Backbone.View 原型添加 close() 方法和向视图添加 onClose()方法?还有一个人在哪里存储活页夹对象,以便可以在关闭时调用 binder.unbindAll()?关闭子视图的推荐方法是什么(例如,集合上的父视图在关联模型上具有子视图)。一个工作示例将是对 Backbone.EventBinder 项目的一个很好的补充。
问问题
286 次
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 回答