Я использую шаблон агрегатора событий Дерика Бэйли , где он проиллюстрировал шаблон, в котором объект управляет подъемом событий и подписчиками этих событий.
Все работало нормально, когда я запускал события в одном представлении и подписывался на них в другом. Проблема возникла, когда два или более представлений подписываются на событие, а затем во время отбрасывания представления одно из представлений отменяет подписку на событие. Это приводит к тому, что все остальные виды также будут отписаны от события.
Есть ли какое-то решение для этого?
Обновление
Вот небольшой фрагмент кода, который я использую на мой взгляд:
var EventAggregator = _.extend({}, Backbone.Events);
new MyView({
collection: MyCollection,
eventagg: EventAggregator
});
MyView = Backbone.View.extend({
initialize: function() {
_.bindAll(this, 'render', 'close', 'actionFnc');
this.childviews = [];
this.options.eventagg.bind('evt:action', this.actionFnc);
this.render();
},
render: function() {
},
close: function() {
_(this.childViews).each(function(childview) {
childview.close();
});
$(this.el).empty();
this.options.eventagg.unbind('evt:action');
},
actionFnc: function() {
// do something over here
}
});