Ловля удалить событие на просмотр в позвоночника в JS


Существует ли какой-либо способ прослушивания события remove / destroy на представлении магистрали.?

Я хочу сделать что-то, как показано ниже:

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

Или

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

Заранее благодарю вас. :)

3 4

3 ответа:

Можно попробовать переопределить метод View.remove::

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

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

Я попробовал следующее, И это работает для меня:

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

Это хороший подход ? Или есть что-то еще лучше этого?

Если вам нужно прослушать, не удаляются ли другие представления, вы можете настроить базовый класс представления на запуск события 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)