2

我的 Backbone 应用程序中有此代码:

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';
  }
});

编辑:

app.Collections.quotes.fetch({
        success: function(){
            app.Utils.ViewManager.swap('section', new app.Views.section({section: 'quotes'}));
        }
    });

在我的模型中:

idAttribute: 'Number',

这是解决办法!感谢帮助。丹在评论中为我指明了正确的方向……

4

1 回答 1

1

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

您的服务器是否确实返回了有效的 JSON 对象数组?

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

你不应该需要一个 ID(尽管如果你想编辑它们显然是必需的)。

于 2013-01-24T13:37:14.793 回答