在Backbone js中捕获View上的删除事件

时间:2014-01-27 06:03:35

标签: backbone.js backbone-views backbone-events

有没有办法在Backbone View上监听删除/销毁事件。?

我想做一些如下所示的事情:

$(myBackboneView).on('remove', function () {
    // do some processing
});

$(myBackboneView).on('destroy', function () {
    // do some processing
});

提前谢谢你。 :)

3 个答案:

答案 0 :(得分:5)

您可以尝试覆盖View.remove方法::

Backbone.View.extend({
    remove: function(){
        // Your processing code here

        Backbone.View.prototype.remove.apply(this, arguments);
    };
});

答案 1 :(得分:1)

我尝试了以下内容,它对我有用:

$(myBackboneView.el).on('remove', function () {
    // do some processing
});

这是一个好方法吗?还是还有比这更好的东西?

答案 2 :(得分:0)

如果您需要侦听要删除的其他视图,则可以让您的基本View类在调用remove()时触发'remove'事件。

BaseView = Backbone.View.extend({
    remove: function () {
        this.trigger('remove', this)
        return Backbone.View.prototype.remove.apply(this, arguments)
    }
})

然后随时倾听:

this.listenTo(otherView, 'remove', func)