Backbone .fetch()添加了太多模型

时间:2014-08-25 16:07:07

标签: javascript json backbone.js

我正在使用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" } ] } ] } }

1 个答案:

答案 0 :(得分:0)

你应该修改集合。

可能你应该改变解析方法:

yourCollection = Backbone.Collection.extend({
    parse: function(data) {
        return data.models[0].attributes.collection.items;
    }
})

当你使用fetch Backbone parse结果并添加你在解析时返回的所有元素。