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