Я использую то, что Addy Osmani называет шаблоном-посредником http://addyosmani.com/largescalejavascript/#mediatorpattern. Вся статья заслуживает прочтения.
По сути, это менеджер событий, который позволяет вам подписываться и публиковать события.Таким образом, ваш AppView будет привязываться к событию, то есть к «выбранному».Затем BrandView опубликует «выбранное» событие.
Мне нравится это потому, что оно позволяет вам отправлять события между представлениями без непосредственного связывания представлений.
ДляПример
var mediator = new Mediator(); //LOOK AT THE LINK FOR IMPLEMENTATION
var BrandView = Backbone.View.extend({
toggle_select: function() {
...
mediator.publish('selected', any, data, you, want);
return this;
}
});
var AppView = Backbone.View.extend({
initialize: function() {
mediator.subscribe('selected', this.delete_selected)
},
delete_selected: function(any, data, you, want) {
... do something ...
},
});
Таким образом, вашему представлению приложения не важно, является ли оно представлением BrandView или FooView, которое публикует событие «selected», только то, что событие произошло.В результате я считаю, что это удобный способ управления событиями между частями вашего приложения, а не только представлениями.
Если вы читаете подробнее о «Фасаде», вы можете создать хорошую структуру разрешений.Это позволит вам сказать, что только «AppView» может подписаться на мое «выбранное» событие.Я нахожу это полезным, поскольку оно очень ясно показывает, где используются события.