Я использую BackboneJS с RequireJS для приложения, которое я создаю.
Файл App
инициализирует маршрутизатор:
// Define application router
var router = new AppRouter();
Backbone.history.start();
И тогда Маршрутизатор берет на себя управление действиями системы.
var App = Backbone.Router.extend({
routes: {
"project/:id": "getProject",
"projects": "getProjects",
"*actions": "defaultRoute"
},
getProject: function (id) {
// dashboard.set('some_key', 'some_value');
},
getProjects: function () {
// dashboard.set('some_key', 'some_value');
},
defaultRoute: function () {
// dashboard.set('some_key', 'some_value');
}
});
Я добавил модель Dashboard
и представление, которое я использую для отображения глобальной информации о состоянии моей системы в любой момент времени. (Это будет находиться в верхней части окна). Его представление отслеживает свою модель на предмет изменения значений и при необходимости выполняет повторный рендеринг. Это прекрасно работает.
Я хочу избежать необходимости переписывать это всегда после инициализации моего первоначального объекта:
var dashboard = new DashboardModel();
var dashboardView = new DashboardView({ model: dashboard });
$('#dashboard-placeholder').html(dashboardView.render().el);
Что мне нужно, так это иметь доступ к этому объекту в любом месте (экземпляр моей модели Dashboard
). На данный момент я инициализирую его в App
, но я не могу получить к нему доступ в маршрутизаторе, если я это сделаю. Я действительно не хочу определять его В маршрутизаторе, потому что это не похоже на правильную задачу для маршрутизатора.
Как и где определить этот экземпляр моей модели Dashboard
?