Backbone Collection错误模型

时间:2015-08-21 14:22:38

标签: javascript json backbone.js

如何重写Backbone Collection fetch()函数以获取我的JSON中的特定部分?

我得到的json看起来像这样:

{
   "success":true,
    "data":[
      {
         "id":1,
         "title":"asdf",
         "link":"http://www.xx.cc/image/asdf/",
         "date":1439993443000
      },
      {
         "id":2,
         "title":"qwer",
         "link":"http://www.xx.cc/image/qwer/",
         "date":1439993091000
      }
   ]
}

我简单的Backbone脚本:

var myCollection = Backbone.Collection.extend({
    url: 'url.to/my/rest/'
});

myCollection.fetch();
console.log(myCollection);

问题在于,我得到的集合长度为1,其中包含1个模型。当我记录该集合并打开“n - > models - > 0 - > attributes - > data”时,我会在JSON数据数组中找到所有对象。

但我需要“数据”对象 - 在我的收藏中作为模型。到目前为止,我找不到解决这个问题的方法,所以有人可能会为我找到正确的想法吗?

1 个答案:

答案 0 :(得分:1)

使用parse函数提供集合描述对象,如the docs中所述:

var myCollection = Backbone.Collection.extend({
    url: 'url.to/my/rest/',
    parse: function(data) {
      return data.data;
    }
});

此方法从服务器的响应中提取相关部分,并根据此部分填充集合。