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})
在这段代码中,console.log始终为this.model中的数据返回null
如果console.log集合中充满了数据,我如何在视图中获取this.model以反映集合中的数据?
答案 0 :(得分:1)
我不确定您的应用在哪里触发FoodView.render()
。当您实例化FoodView
时它不会自动发生,并且当json响应触发回调app.FoodCollection.fetch()
时它不会发生,除非您在success
中手动调用它打回来。如果你这样做,你的背景可能会丢失。
此外,您的代码中存在一些拼写错误(app.FoodCollection = new FoodCollection();
)。如果没有,那么你能提供确切的代码吗?请包含调用render()
此外,我不确定您的观点是否与您的模型相关联。尝试:
var FoodView = Backbone.View.extend({
model: FoodModel,
render: function(){
console.log(this.model.toJSON());
}
});
否则,Backbone无法知道您所指的模型。