Backbone de collecte des extractions de données, mais ne définit pas les modèles

Je suis en train de remplir mon épine Dorsale de la collection à partir d'une API, et de modifier la vue pour afficher les données. Le fetch() appel dans ma collection semble réussir, et saisit les données, mais l'opération d'extraction ne met pas à jour les modèles de la collection.

C'est ce que j'ai eu pour mon modèle et collection:

var Book = Backbone.Model.extend();

var BookList = Backbone.Collection.extend({

    model: Book,
    url: 'http://local5/api/books',

    initialize: function(){
        this.fetch({
            success: this.fetchSuccess,
            error: this.fetchError
        });
    },

    fetchSuccess: function (collection, response) {
        console.log('Collection fetch success', response);
        console.log('Collection models: ', this.models);
    },

    fetchError: function (collection, response) {
        throw new Error("Books fetch error");
    }

});

et j'ai fait de mon point de vue comme ceci:

var BookView = Backbone.View.extend({

    tagname: 'li',

    initialize: function(){
        _.bindAll(this, 'render');
        this.model.bind('change', this.render);
    },

    render: function(){
        this.$el.html(this.model.get('author') + ': ' + this.model.get('title'));
        return this;
    }

});

var BookListView = Backbone.View.extend({

    el: $('body'),

    initialize: function(){
        _.bindAll(this, 'render');

        this.collection = new BookList();
        this.collection.bind('reset', this.render)
        this.collection.fetch();

        this.render();
    },

    render: function(){
        console.log('BookListView.render()');
        var self = this;
        this.$el.append('<ul></ul>');
        _(this.collection.models).each(function(item){
            console.log('model: ', item)
            self.appendItem(item);
        }, this);
    }

});

var listView = new BookListView();

et mon API renvoie les données JSON comme ceci:

[
    {
        "id": "1",
        "title": "Ice Station Zebra",
        "author": "Alistair MacLaine"
    },
    {
        "id": "2",
        "title": "The Spy Who Came In From The Cold",
        "author": "John le Carré"
    }
]

Lorsque j'exécute ce code j'obtiens ceci dans la console:

BookListView.render() app.js:67
Collection fetch success Array[5]
Collection models:  undefined 

qui m'indique que le téléchargement d'appel est l'obtention de données OK, mais que ce n'est pas de peupler les modèles avec elle. Quelqu'un peut me dire ce que je fais mal?

OriginalL'auteur And Finally | 2013-10-20