您好我有一个json文件,如下所示:
{
"links_1": [
{
"navn": "somename",
"link": "http://www.domane.com"
},
{
"navn": "somename",
"link": "http://www.domane.com"
},
{
"navn": "somename",
"link": "http://www.domane.com"
}
],
"links_2": [
{
"navn": "someothername",
"link": "http://www.domane.com"
},
{
"navn": "someothername",
"link": "http://www.domane.com"
},
{
"navn": "someothername",
"link": "http://www.domane.com"
}
]
}
然后我有我的Collection类。 现在我想创建一个只包含json文件中的links_1数组的新集合。 另一个包含json文件中的links_2数组的新集合。
我如何实现这一目标?
var col = new Collection( Collection.prototype.parse = function(response){
return response.links_1;
}
因此,为了进一步说明,我希望我的fetch获取特定的json数据对象。
var col = new Collection();
col.fetch(links_1); // here i only want to get links_1 json data
var col2 = new Collection();
col2.fetch(links_2); // here i only want to get links_2 json data
任何帮助都会很棒。
答案 0 :(得分:1)
你在试图覆盖parse
时走在正确的轨道上,你只是错误地做了。尝试:
//define a collection class
var Link1Collection = Backbone.Collection.extend({
parse:function(response) {
return response.links_1
}
});
//initialize a new instance of your collection class and fetch
var collection = new Link1Collection();
collection.fetch();
编辑:要选择要在实例到实例的基础上提取的字段,您可以在fetch
选项中传递自定义选项。选项将传递给parse
:
//define a collection class
var LinkCollection = Backbone.Collection.extend({
parse:function(response, options) {
return options.parseField ? response[options.parseField] : response;
}
});
//initialize a new instance of your collection class and fetch
var collection = new LinkCollection();
collection.fetch({parseField:'links_1'});