Возможно, вы сможете сделать это, используя уже доступную функциональность событий jquery и свойство магистральных событий.
Например, вместо того, чтобы делать это изнутри вашего подпредставления:
this.trigger("yourevent", this);
сделайте это вместо:
this.$el.trigger("yourevent", this);
Затем в любом представлении, которое является родителем, прародителеми т. д. вашего дочернего представления, прослушайте событие в $ el этого представления, определив свойство для объекта событий этого представления:
events:{
"yourevent":"yourhandler"
}
и определите также обработчик для этого представления:
yourhandler:function(subview) {
}
Таким образом, представлению не нужно знать о том, какие виды-потомки существуют, а только тот тип события, который его интересует. Если представление, инициирующее событие, уничтожается, ничто не должно изменяться в представлении предка.Если представление предка уничтожено, Backbone автоматически отсоединит обработчики.
Предостережение: На самом деле я еще не пробовал это, так что, возможно, где-то там есть ошибка.