Assume I have a such json setting:
{
page:1,
items:[
{
name: 'item1',
id:1
},
{
name: 'item1',
id:2
},
{
name: 'item1',
id:3
}
]
}
And a such modelling:
var Item = Backbone.Model.extend({
defaults: {name: "No name"}
});
var ItemCollection = Backbone.Collection.extend({
model: Item,
url: '/some/ajax/url',
});
After fetching this json, how can I map the items set as the collection of the ItemCollection and add the page number as an attribute to the collection?
You need to override parse
It will end up looking something like this:
(Coffeescript, but easy enough to convert to straight javascript)
Your other option is the relational plugin found at:
https://github.com/PaulUithol/Backbone-relational
I've never used it but it is supposed to do the parse mapping stuff for you I think.
As @asawyer mentioned, you have to override the parse method, but you don't need to actually instantiate each item, Backbone can do that for you if you return the array of items.
See the documentation for collection.parse
Your code could be written as