Backbone.js 收集获取后主干模型为空
在这段代码中,console.log始终为this.model中的数据返回nullBackbone.js 收集获取后主干模型为空,backbone.js,model-view-controller,Backbone.js,Model View Controller,在这段代码中,console.log始终为this.model中的数据返回null 如果console.log集合中充满了数据,如何在视图中获取此.model以反映集合中的数据?我不确定应用程序在哪里触发FoodView.render()。当您实例化FoodView时,它不会自动发生;当json响应触发对app.FoodCollection.fetch()的回调时,它也不会发生,除非您在success回调中手动调用它。如果您正在这样做,您的上下文可能已经丢失 此外,您的代码中还有一些输入错误(a
如果console.log集合中充满了数据,如何在视图中获取此.model以反映集合中的数据?我不确定应用程序在哪里触发
FoodView.render()
。当您实例化FoodView
时,它不会自动发生;当json响应触发对app.FoodCollection.fetch()
的回调时,它也不会发生,除非您在success
回调中手动调用它。如果您正在这样做,您的上下文可能已经丢失
此外,您的代码中还有一些输入错误(app.FoodCollection=newfoodCollection();
)。如果没有,那么你能提供准确的代码吗?请包括正在调用的任何代码render()
另外,我不确定您的视图是否与您的模型相关联。尝试:
var FoodView=Backbone.View.extend({
型号:FoodModel,
render:function(){
log(this.model.toJSON());
}
});
否则,主干无法知道您所引用的模型。这是错误的,首先您所引用的模型没有实例化,其次在创建视图时引用模型。。。var myView=new FoodView({model:app.FoodModel})不熟悉该模式,但在调用
app.FoodCollection.fetch()
后,您将模型传递到构造函数中,因此我不确定关联将如何及时发生。但是现在还不清楚从哪一个调用render()
。请参阅我上面的编辑请求澄清。后端返回什么?
var app = {};
var FoodModel = Backbone.Model.extend({
url: "http://localhost/food"
});
var FoodCollection = Backbone.Collection.extend({
model: FoodModel,
url: "http://localhost/food"
});
var FoodView = Backbone.View.extend({
render: function(){
console.log(this.model.toJSON());
}
});
app.FoodModel = new FoodModel();
app.FoodCollection = new FoodCollection;
app.FoodCollection.fetch();
var myView = new FoodView({model: app.FoodModel})