我有 3 个视图,ViewA 包含 ViewB 子项的集合,每个 ViewB 包含 ViewC 子项的集合。
ViewA: Backbone.View.extend({
viewBChildren: [],
initialize: function() {
// Do stuff
var self = this;
// Generate children
this.model.get("CollectionB").each(function(b) {
var viewB = new ViewB({
// set properties
});
self.viewBChildren.push(viewB);
console.log(self.viewBChildren.length); // Prints out correctly
});
}
});
ViewB: Backbone.View.extend({
viewCChildren: [],
initialize: function() {
var self = this;
this.model.get("CollectionC").each(function (c) {
var viewC = new ViewC({
// Set properties
});
self.viewCChildren.push(viewC);
console.log(self.viewCChildren.length); // Prints out a running total
});
}
});
因此,如果我在 CollectionB 中有 5 个项目,我希望viewBChildren.length
也是 5 个。这是正确的并且工作正常。
我的问题是打印出来的时候viewCChildren.length
。如果 CollectionB 中的每个项目都有 5 个孩子,我希望它会打印5
五次。相反,它会打印出运行总数 5、10、15、20、25。
没有其他代码触及这些子集合,也没有其他方法修改它。我的视图的初始化方法中的两个调用是唯一影响集合的东西。
我觉得我的范围有问题,但我看不出我做错了什么。有任何想法吗?