TIM*_*MEX 5 javascript oop jquery backbone.js
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();
Run Code Online (Sandbox Code Playgroud)
我该如何销毁实例?当激活切换时,我希望该视图的实例永远消失.
我对类似问题的回答很好,对我来说效果很好.这是我的destroy_view函数
(orig.问题/sf/answers/807383951/)回复:
我必须绝对确定视图不仅仅是从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);
}
Run Code Online (Sandbox Code Playgroud)
对我来说似乎有些过分,但其他方法并没有完全解决问题.
不要将实例分配给任何变量(我认为没有任何必要,因为主干中的视图是由事件驱动的),并且在您的toggleCheckFriend方法中删除所有数据和事件,这使得实例可用于垃圾收集。
toggleCheckFriend:function(){
$(this.el).removeData().unbind();
}
Run Code Online (Sandbox Code Playgroud)