Backbone.js 对我的集合调用fetch会实例化它在主干中接收的所有模型吗?
我的主干应用程序中有以下代码:Backbone.js 对我的集合调用fetch会实例化它在主干中接收的所有模型吗?,backbone.js,Backbone.js,我的主干应用程序中有以下代码: app.Collections.quotes = new app.Collections.Quotes(); app.Collections.quotes.fetch(); 我可以在“网络”选项卡中看到返回的对象数组,但当我展开集合时,其中的模型数组为0。在新集合上运行fetch()时,它们是否被实例化为模型 这是我的收藏: app.Collections.Quotes = Backbone.Collection.extend({ model: app.Mo
app.Collections.quotes = new app.Collections.Quotes();
app.Collections.quotes.fetch();
我可以在“网络”选项卡中看到返回的对象数组,但当我展开集合时,其中的模型数组为0。在新集合上运行fetch()时,它们是否被实例化为模型
这是我的收藏:
app.Collections.Quotes = Backbone.Collection.extend({
model: app.Models.Quote,
url: function() {
return app.Settings.apiUrl() + '/quotes';
}
});
编辑:
在我的模型中:
idAttribute: 'Number',
这就是解决办法!谢谢你的帮助。Dan在注释中给我指出了正确的方向…调用集合上的fetch()
尝试将JSON响应填充到模型中:
您的服务器是否确实返回了一个有效的JSON对象数组
您的报价模型是否经过验证?我非常确定主干在填充集合之前会验证每个模型,只填充通过的模型。因此,如果存在,请检查您的Model#validate
方法是否正常工作
您不应该需要ID(尽管如果要编辑它们,显然需要ID)。
fetch
应该创建新的模型实例。。。你有来自网络选项卡的数据,可能还有一些模型代码吗?@Matt如果返回的对象没有“id”键,我猜集合Fetch()无法将它们实例化为模型?我假设你只是在获取后立即控制台日志。。。等待集合重置事件,然后检查它
idAttribute: 'Number',