Вот модифицированный образец из здесь .
var PhotoRouter = Backbone.Router.extend({
routes: { "photos/:id": "route" },
route: function(id) {
var item = photoCollection.get(id);
var view = new PhotoView({ model: item });
var view2 = new PhotoView2({ model: item });
something.html( view.render().el );
somethingElse.html( view2.render().el );
}
}):
Теперь у Backbone нет предпочтительного способа структурирования вашего приложения.Вы можете сделать это, создавая и показывая виды в маршрутизаторе.Или иногда полезно создать свой собственный объект AppController, чтобы вы могли оставить маршрутизатор только для маршрутизации.Или вы можете создать BaseView некоторого вида, который будет создавать ваши подвиды ...
Но важно то, что оба ваших представления ничего не знают друг о друге.И оба будут отображать и реагировать на изменения в модели по-своему.Кроме того, модель ничего не знает о представлениях, отображающих ее.
Дополнительная информация .
Еще одна полезная идея - агрегатор событий .Используя это, ваши различные компоненты могут обмениваться данными без сильной связи друг с другом.
Есть несколько расширений для Backbone , таких как (Backbone Marionette), которые добавляют еще больше структуры.Вы можете посмотреть на них тоже.