Начальная загрузочная коллекция не инициализируется правильно

У меня есть проблема, которую было действительно трудно заметить, потому что по большей части все работает. Только когда я попытался манипулировать своими данными в функции инициализации моих коллекций, я обнаружил проблему.

Основные документы в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() не появился.

Что происходит?

Ответы на вопрос(2)

Ваш ответ на вопрос