我正在使用 Node/express 和 Mongodb 创建我的第一个主干应用程序。该应用程序是一个在线食品菜单和订购系统,它在第一页加载时从 mongo 收集所有数据并将其推送到 Backbone 集合中。我正在使用主干路由器中的初始化函数来获取()数据并将其放入集合中。我的问题是在 Initialize 函数完成之前加载索引路由器。我已确认初始化函数运行正确,因为我可以在浏览器控制台中访问该集合。
我可能会以错误的方式解决这个问题,但这是我的路由器的简化版本:
GDB.Router = Backbone.Router.extend ({
routes: {
'': 'index',
'drinks': 'drinks'
},
meals: {},
initialize: function() {
meals = new GDB.Collections.Meals
meals.fetch();
},
index: function() {
var mealsView = new GDB.Views.Meals ({collection: meals});
$('#GDBContainer').append(mealsView.render().el);
},
drinks: function() {
var drinksView = new GDB.Views.Meals ({collection: meals.byCategory('drinks')});
$('#GDBContainer').append(drinksView.render().el);
}
});