我正在使用backbone的fetch方法从服务器检索一组JSON。在fetch调用中,我有一个成功的回调函数,可以为每个找到的对象正确地为模型分配属性。
var foo = assetCollection.fetch({
reset: true,
success: function(response){
var data = response.models[0].attributes.collection.items;
data.forEach(function(data){
assetCollection.add([
{src_href: data.data[0].value,
title: data.data[1].value
}
]);
});
console.log(assetCollection.models)
}
})
现在我正在处理一组有两个对象的静态JSON。但是,记录assetCollection.models会返回三个对象:第一个是初始服务器JSON响应,而接下来的两个是正确解析的Backbone模型。
如何让Backbone不将第一个对象(服务器的整个响应)添加到其模型集中,而只是添加我感兴趣的两个JSON对象?
从服务器返回的JSON对象如下:
{
"collection": {
"version": "1.0",
"items": [
{
"href": "http://localhost:8080/api/assets/d7070f64-9899-4eca-8ba8-4f35184e0853",
"data": [
{
"name": "src_href",
"prompt": "Src_href",
"value": "http://cdn.images.express.co.uk/img/dynamic/36/590x/robin-williams-night-at-the-museum-498385.jpg"
},
{
"name": "title",
"prompt": "Title",
"value": "Robin as Teddy Roosevelt"
}
]
},
{
"href": "http://localhost:8080/api/assets/d7070f64-9899-4eca-8ba8-4f35184e0853",
"data": [
{
"name": "src_href",
"prompt": "Src_href",
"value": "http://b.vimeocdn.com/ts/164/830/164830426_640.jpg"
},
{
"name": "title",
"prompt": "Title",
"value": "Mrs. Doubtfire"
}
]
}
]
}
}
答案 0 :(得分:0)
你应该修改集合。
可能你应该改变解析方法:
yourCollection = Backbone.Collection.extend({
parse: function(data) {
return data.models[0].attributes.collection.items;
}
})
当你使用fetch Backbone parse结果并添加你在解析时返回的所有元素。