我在Backbone应用程序中有这个代码:
app.Collections.quotes = new app.Collections.Quotes();
app.Collections.quotes.fetch();
我可以看到网络选项卡中返回的一个对象数组,但是当我展开Collection时,里面的Models数组是0.当在新的Collection上运行fetch()时,它们是否被实例化为Models?
这是我的收藏:
app.Collections.Quotes = Backbone.Collection.extend({
model: app.Models.Quote,
url: function() {
return app.Settings.apiUrl() + '/quotes';
}
});
编辑:
app.Collections.quotes.fetch({
success: function(){
app.Utils.ViewManager.swap('section', new app.Views.section({section: 'quotes'}));
}
});
在我的模特中:
idAttribute: 'Number',
这是修复!感谢帮助。 Dan kinda在评论中指出了我正确的方向......
答案 0 :(得分:1)
在集合上调用fetch()
会尝试将JSON响应填充到模型中:Collection#fetch。
您的服务器肯定会返回有效的JSON对象数组吗?
您对报价模型有任何验证吗?我非常确定Backbone在填充集合之前验证每个模型,只填充通过的模型。如果存在,请检查您的Model#validate
方法是否正常运行。
你不需要一个ID(虽然如果你想编辑它们,显然是必需的。)