我正在开发一个Backbone应用程序。我创建了基本视图,其中有一个销毁方法,所有其他视图扩展它。骨干清除 - 删除上下文绑定回调的引用
销毁视图实例时,我想确保如果视图有模型或集合,我解除绑定正在侦听的任何事件。
假设我在视图的初始化中使用下划线的_.bindAll,下面的 off语句是否会删除引用。
var DocumentRow = Backbone.View.extend({
initialize: function() {
_.bindAll(this);
this.model.on('change', this.render);
},
destroy : function() {
// Will this work?
this.model.off(null, null, this);
}
});
或者我需要显式绑定的事件,像这样
this.model.on('change', this.render, this);
为什么你将null传递给model.off? –
删除视图中的所有回调。根据Backbone文档中的示例://为所有事件移除“context”的所有回调。 object.off(null,null,context); – Daniel
好的。我认为this.model.on('改变',this.render);应该可以正常工作,因为渲染将被绑定到'This',您的DocumentRow。 –