Начальная загрузочная коллекция не инициализируется правильно
У меня есть проблема, которую было действительно трудно заметить, потому что по большей части все работает. Только когда я попытался манипулировать своими данными в функции инициализации моих коллекций, я обнаружил проблему.
Основные документы вhttp://backbonejs.org/#Collection-constructor
& quot; Если вы определите функцию инициализации, она будет вызываться при создании коллекции. & quot;
поэтому я интерпретировал это как, моя функция инициализации не будет работать до тех пор, пока не будут установлены мои модели. & quot; Это звучит идеально, & quot; сказал я, но потом я столкнулся с этим.
Мой код начальной загрузки выглядит следующим образом:
new MyCollection(<?php if ($data) {echo json_encode($data);} ?>);
Моя коллекция:
var MyCollection = Backbone.Collection.extend({
model: MyModel,
initialize: function() {
console.log(this);
console.log(this.length);
this.each(function(model) {
console.log(model);
});
}
});
Я получил странные результаты.
Первыйconsole.log(this);
был объект коллекции, как и ожидалось:
{
....
models: [3],
length: 3
....
}
а второйconsole(this.length);
распечатал номер0
консоль внутриthis.each()
не появился.
Что происходит?