我有一个呈现骨干视图的路由器。 (我也在使用requirejs)
initialize: function () {
var crateCollection = new CrateCollection();
crateCollection.fetch({
success: function()
{
var cratesView = new CratesView({ model: crateCollection });
}
});
}
在视图的初始化中,集合很好,我可以将它输出到console.log并查看它是否已正确填充。
initialize: function (models) {
var crateCollection = models.model;
console.log(crateCollection);
this.render();
}
但是,当我运行render函数时,crateCollection未定义且JS错误带有“无法访问undefined模型”
render: function () {
$(this.el).html(this.template());
var that = this;
console.log(this.crateCollection);
_.each(this.crateCollection.models, function (item) {
that.renderCrate(item);
}, this);
},
为什么无法从此功能访问此集合?它应该填充,因为它等待异步调用在初始化视图之前返回成功,所以它们不应该是那里的任何问题。
我错过了什么?
答案 0 :(得分:2)
initialize
内View
使用
this.crateCollection = models.model;
而不是
var crateCollection = models.model;
我认为crateCollection
存在范围问题。