Kolekcja startowa szkieletowa nie jest poprawnie inicjowana

Mam problem, który był naprawdę trudny do zauważenia, ponieważ w większości wszystko działa. Dopiero gdy próbowałem manipulować moimi danymi w moich kolekcjach, inicjalizuj funkcję, którą znalazłem.

Szkielet dociera dohttp://backbonejs.org/#Collection-constructor

„Jeśli zdefiniujesz funkcję inicjującą, zostanie ona wywołana podczas tworzenia kolekcji.”

więc zinterpretowałem to jako, że moja funkcja inicjująca nie będzie działać, dopóki moje modele nie zostaną ustawione. „To brzmi idealnie”, powiedziałem, ale potem wpadłem na to.

Mój kod bootstrap jest następujący:

new MyCollection(<?php if ($data) {echo json_encode($data);} ?>);

Moja kolekcja:

var MyCollection = Backbone.Collection.extend({
    model: MyModel,

    initialize: function() { 
        console.log(this); 
        console.log(this.length);
        this.each(function(model) {
            console.log(model);
        });
    } 
});  

Mam dziwne wyniki.

Pierwszyconsole.log(this); był obiektem kolekcji zgodnie z oczekiwaniami:

{ 
    .... 
    models: [3], 
    length: 3 
    .... 
} 

i drugiconsole(this.length); wydrukował numer0

konsola w środkuthis.each() nie pojawił się.

Co się dzieje?

questionAnswers(2)

yourAnswerToTheQuestion