Backbone.js 触发收集';就绪';每个型号后的事件';s设置逻辑
我有代表一棵树的集合。每个模型都有从服务器变为id的父属性。使用传入数据重置集合后,每个模型都必须在集合中找到其父属性,并将引用设置为属性,而不是普通id。之后,必须从集合触发一个事件,以备渲染Backbone.js 触发收集';就绪';每个型号后的事件';s设置逻辑,backbone.js,backbone-events,Backbone.js,Backbone Events,我有代表一棵树的集合。每个模型都有从服务器变为id的父属性。使用传入数据重置集合后,每个模型都必须在集合中找到其父属性,并将引用设置为属性,而不是普通id。之后,必须从集合触发一个事件,以备渲染 var node = Backbone.Model.extend({ initialize: function(){ //reset event fired after all models are in collection, //so we can setup
var node = Backbone.Model.extend({
initialize: function(){
//reset event fired after all models are in collection,
//so we can setup relations
this.collection.on('reset', this.setup, this);
},
setup: function(){
this.set('parent', this.collection.get(this.get('parent')));
this.trigger('ready', this);//-->to collection event aggregator?
}
});
var tree = Backbone.Collection.extend({model: node})
是否有任何清晰的方法可以查看所有模型的设置?或者我必须在集合中编写自定义事件聚合器?实际上,您想要的是在
集合中绑定重置事件,而不是在模型中
var Node = Backbone.Model.extend({
}),
Tree = Backbone.Collection.extend({
model: Node,
initialize: function() {
this.on('reset', this.setup, this);
},
setup: function() {
this.each(this.updateModel, this);
//Here you have all your models setup
},
updateModel: function(m) {
m.set({
parent: this.get(m.get('parent'));
});
}
})