Backbone.js 在主干js中捕获视图上的删除事件

Backbone.js 在主干js中捕获视图上的删除事件,backbone.js,backbone-views,backbone-events,Backbone.js,Backbone Views,Backbone Events,有没有办法监听主干视图上的删除/销毁事件 我想做一些事情如下: $(myBackboneView).on('remove', function () { // do some processing }); 或 提前谢谢。:) 我尝试了以下方法,效果很好: $(myBackboneView.el).on('remove', function () { // do some processing }); 这是一个好方法吗?或者还有比这更好的方法吗?您可以尝试覆盖视图。删除方法:

有没有办法监听主干视图上的删除/销毁事件

我想做一些事情如下:

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


提前谢谢。:)

我尝试了以下方法,效果很好:

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

这是一个好方法吗?或者还有比这更好的方法吗?

您可以尝试覆盖
视图。删除
方法:

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

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

如果需要侦听正在删除的其他视图,则可以在调用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)

是的,在完全删除视图之前,我需要进行一些处理。非常感谢。这个对我来说非常有用:)remove事件不是jQuery的一部分,它是由jQuery UI v1.10.2及更高版本添加的。小注释:$(myBackboneView.el)默认情况下作为myBackboneView.el提供的。如果您在视图模型中,则为This.el。因此myBackboneView.el应该给出相同的结果。
this.listenTo(otherView, 'remove', func)