Backbone-Sammlung.each() funktioniert nicht

Ich erhalte folgende Meldung, wenn ich versuche zu verwenden Rückgrat der Sammlung.each () - Methode:

TypeError: Object function (){ return parent.apply(this, arguments); } über keine Methode verfügt, 'jeder'.

Ich Lerne Rückgrat von einigen Jeffrey Weise tutorials; ich betrat identischen code zu sein, aber aus irgendeinem Grund funktioniert es nicht.

var Person = Backbone.Model.extend({
    defaults: {
        name: 'besim dauti',
        age: 15,
        occupation: 'web developer'
    }
});

var PeopleView = Backbone.View.extend({
    tagName: 'ul',

    render: function(){
        this.collection.each(function(person) {
            var personView = new PersonView({ model: person });
            this.$el.append(personView.render().el)
        }, this)
        return this;
    }
});

var PersonView = Backbone.View.extend({
    tagName: 'li',

    template: _.template( $('#personTemplate').html() ),

    render: function(){
        this.$el.html(this.template(this.model.toJSON()) );
        return this;
    }
});

var PeopleCollection = Backbone.Collection.extend({
    model: Person
});

var peopleCollection = new PeopleCollection([
    {
        name: 'besim',
        age: 25,
        occupation: 'web developer'
    },
    {
        name: 'gaurav',
        age: 25,
        occupation: 'web designer'
    },
    {
        name: 'jeffry',
        age: 27
    }
])

var peopleView = new PeopleView ({collection: PeopleCollection});
$(document.body).append(peopleView.render().el);

Warum gibt es dieses problem mit der .each() Funktion? Ich tippte den code identisch und für Jeffrey, es funktionierte wie erwartet, aber für mich ist es angezeigt, dieser Fehler. Ich Schätze Ihre Hilfe.

Was passiert, wenn Sie fügen Sie eine neue Zeile am Beginn der PeopleView machen wie console.log(this.collection);? Das Allgemeine problem scheint zu sein, dass this.collection ist nicht, was Sie denken, es ist (wenn es da war, es hätte einen each - Methode). Wenn man sich So anschaut, was es eigentlich ist, in der Konsole (mit Firebug, Chrome developer tools, etc.), es wird wahrscheinlich Ihnen helfen, herauszufinden, was falsch läuft.

InformationsquelleAutor besim dauti | 2013-05-18

Schreibe einen Kommentar