如何销毁这个Backbone.js视图实例?
How do I destroy this Backbone.js View instance?
var CheckboxView = Backbone.View.extend({
tagName:'div',
template: _.template(item_temp,{}),
events:{
'click .checkoff_friend':'toggleCheckFriend',
},
initialize: function(){
},
render:function(){
},
toggleCheckFriend:function(){
//destroy this View instance.
}
});
var cv = new CheckboxView();
如何销毁实例?当toggle被激活时,我希望该视图的实例永远消失
我对一个类似问题的回答很受欢迎,对我来说也很有效。下面是我的destroy_view函数
(源自。问题https://stackoverflow.com/a/11534056/986832)回应:
我必须绝对确定视图不仅从DOM中删除,而且从事件中完全解除绑定。
destroy_view: function() {
//COMPLETELY UNBIND THE VIEW
this.undelegateEvents();
$(this.el).removeData().unbind();
//Remove view from DOM
this.remove();
Backbone.View.prototype.remove.call(this);
}
对我来说似乎太过了,但其他方法并没有完全做到这一点。
不要将实例分配给任何变量(我不认为有任何需要,因为骨干中的视图是由事件驱动的),并且在您的toggleCheckFriend
方法中删除所有数据和事件,这使得实例可用于垃圾收集。
toggleCheckFriend:function(){
$(this.el).removeData().unbind();
}
视图后面有模型吗?
如果你想删除模型(从数据库),你可以使用:this.model.destroy()
之后,您可以通过调用this.remove()
从DOM中删除视图本身。文档提到它相当于$(this.el).remove()
。
注意,上面的'this'指的是视图本身,所以你必须_.bindAll(this, 'toggleCheckFriend')
相关文章:
- UI5 路由不实例化视图
- 挖空视图模型函数仅影响最后一个实例
- 挖空.js:等待视图模型实例化完成
- 如何在Backbone中创建自实例化视图
- 计数或选择主干视图实例
- 为什么我在尝试实例化一个空的backbone.js视图时出现类型错误
- 主干视图实例未按预期工作
- Aurelia组件在其他视图模型中使用时不共享实例
- 使用ng repeat添加多个视图实例时的范围界定问题
- 主干选项卡内部使用的同一视图的多个实例
- ExtJS 多视图实例
- 使用主干.js中的路由管理单页应用程序中的多个视图实例
- RequireJS, Pub/Sub.如果没有糟糕的解决方法,我无法从其自己的方法访问视图实例
- 获取在视图实例中定义的具有特定 ID 的数据
- Ember.js:如何访问嵌套视图实例
- 如何销毁这个Backbone.js视图实例?
- 导致冲突的多个视图实例中的代码
- 主干异步视图实例化
- BackboneJS -缓存视图实例
- 如何在主干中维护多个集合和视图实例