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 つのアイテムがある場合、これも 5 であると予想viewBChildren.length
されます。これは正しく、問題なく動作します。
私の問題は、印刷するときviewCChildren.length
です。5
CollectionB の各項目に 5 つの子がある場合、 5 回印刷されると予想されます。代わりに、累計 5、10、15、20、25 を出力します。
他のコードはこれらの子コレクションに触れておらず、他のメソッドはまだそれを変更していません。私のビューの初期化メソッドの 2 つの呼び出しは、コレクションに影響を与える唯一のものです。
スコープに問題があるような気がしますが、何が間違っていたのかわかりません。何か案は?