我正在将 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
模型的这个实例?