我有一个集合,在获取时会获得一个json并放入集合: JSON格式为:
[
{
name: 'Hello',
age: '22',
bio: [{
interest: 'soccer',
music: 'r&B'
}]
}
]
我想从bio制作另一个系列(不再提取)。 原因是我想访问name,age和bio,而解析函数只能返回一个?
var user = new Backbone.Collection.extend({
url: '/user',
parse: function (response) {
//I want both of this?
//return response;
return response.bio;
}
});
我将这个集合传递给fetch成功函数到两个不同的视图。
//Controller File....
.............
mycollection.fetch({
success: function() {
//Details View wants response
PrimaryLayout.main.show(new detailsView{collection: mycoll});
//Bio View wants response.bio
PrimaryLayout.body.show(new bioView{collection: mycoll});
}
})
解决这个问题的最佳方法是什么?我可以克隆一个集合并且只有bio吗?
答案 0 :(得分:1)
我通常通过在parse
中实例化子集来解决这个问题:
var User = Backbone.Model.extend({
parse: function(json) {
// instantiate the collection
json.bio = new Backbone.Collection(json.bio);
// now person.get('bio') will return a Collection object
return json;
}
});
var Users = Backbone.Collection.extend({
model: User,
// ...
});
答案 1 :(得分:0)
我认为这正是您所寻找的:Backbone Associations。看看那里的教程和示例。