收集提取后的主干模型为空

时间:2014-04-04 01:02:06

标签: backbone.js model-view-controller

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以反映集合中的数据?

1 个答案:

答案 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无法知道您所指的模型。