Мне нелегко «привязка» событий моего маршрутизатора из моего основного экземпляра представления. Мои первые мысли связаны с тем, что маршрутизатор запускает только мою коллекцию Depths
. Как я могу уведомить viewpoint.js
об изменении страницы?Событие связывания маршрутизатора с основного экземпляра представления
router.js
var depth = depth || {};
(function() {
'use strict';
var DepthRouter = Backbone.Router.extend({
routes: {
'*page' : 'setPage'
},
setPage: function(page) {
// Set the current page
page = page.trim() || 'home';
// Trigger a collection {page} event
depth.Depths.trigger(page);
}
});
... // instance creation and Backbone.history.start() stuff
}());
viewpoint.js
var depth = depth || {};
$(function($) {
'use strict';
depth.Viewpoint = Backbone.View.extend({
el: 'section#right > div.content',
// Bind relevant triggers
initialize: function() {
},
});
});
Что делать, если моя коллекция еще не изменилась? Я хочу, чтобы мое представление изменилось при изменении моего маршрутизатора? Разве это невозможно? – Penner
Конечно, вы можете вручную вызвать событие рендеринга представления. Это можно сделать, например, через глобальное событие, на которое вы привязываете свое представление. – Drejc