在我的Collection上调用fetch会实例化它在Backbone中收到的所有模型吗?

时间:2013-01-24 13:27:21

标签: backbone.js

我在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在评论中指出了我正确的方向......

1 个答案:

答案 0 :(得分:1)

在集合上调用fetch()会尝试将JSON响应填充到模型中:Collection#fetch

您的服务器肯定会返回有效的JSON对象数组吗?

您对报价模型有任何验证吗?我非常确定Backbone在填充集合之前验证每个模型,只填充通过的模型。如果存在,请检查您的Model#validate方法是否正常运行。

你不需要一个ID(虽然如果你想编辑它们,显然是必需的。)