有这样的json数据:
{ tournaments: [ {
tournament_id: "..."
tournament_name: "..."
events: [ {
event_id: ...
event_name: ....
param : [ {
param_a :
param_b : ..
subparan : [ {
sub_1: 1
sub_2 : 2...
因此。我不明白 - 如何实现BackBone Collection / Model风格?
如何处理更改sub_1? - 收集收藏品集?
答案 0 :(得分:3)
骨干教程中最简单的方法described:
var Events = Backbone.Collection.extend({
initialize: function(){
this.params = new Params()
}
})
var Tournaments = Backbone.Model.extend({
initialize: function(){
this.events = new Events()
}
})
var tournaments = new Tournaments()
您可以根据需要继续嵌套。当我在处理类似的任务时,我将每个集合包装在代表集合状态的模型中,并在回答集合事件时自行更改。这样就不会向嵌套集合询问其在模型中具有实际状态的状态。
var CollModel = Backbone.Model.extend({
defaults: {
state = ''//or list or dict or whatever
},
initialize: function(){
this.items = new Backbone.Collection();
this.items.on('all', this.setState, this)
},
setState: function(){
this.set(
'state',
this.items.reduce(function(state, item){
/*calculate state*/
}, '')
)
},
info: function(){
return this.get('state')
}
})
因此,您可以使用类似技术嵌套集合模型,并通过instance.info()直接读取其状态取决于您如何计算它。您的顶级模型状态将从模型集合下方的级联更新中更新。