如何重写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数据数组中找到所有对象。
但我需要“数据”对象 - 在我的收藏中作为模型。到目前为止,我找不到解决这个问题的方法,所以有人可能会为我找到正确的想法吗?
答案 0 :(得分:1)
使用parse
函数提供集合描述对象,如the docs中所述:
var myCollection = Backbone.Collection.extend({
url: 'url.to/my/rest/',
parse: function(data) {
return data.data;
}
});
此方法从服务器的响应中提取相关部分,并根据此部分填充集合。