如何销毁此Backbone.js View实例?

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)

我该如何销毁实例?当激活切换时,我希望该视图的实例永远消失.

sda*_*ley 6

我对类似问题的回答很好,对我来说效果很好.这是我的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)

对我来说似乎有些过分,但其他方法并没有完全解决问题.


Esa*_*ija 3

不要将实例分配给任何变量(我认为没有任何必要,因为主干中的视图是由事件驱动的),并且在您的toggleCheckFriend方法中删除所有数据和事件,这使得实例可用于垃圾收集。

    toggleCheckFriend:function(){
    $(this.el).removeData().unbind();

    }
Run Code Online (Sandbox Code Playgroud)