Backbone.js 收集获取后主干模型为空

Backbone.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始终为this.model中的数据返回null


如果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})