1

以下のコードでは、ナビゲーターがエラーをスローします。require.js で backbone.js を使用して、ビューから本をロードしています。これが私のコードです。

BookListView.js

define([
    'jquery',
    'underscore',
    'backbone',
    'collections/bookCollection',
    'views/bookView'
], function ($, _, Backbone, bookCollection, bookView) {

    var books = [{ ... }];

    var BookListView = Backbone.View.extend({
        el: $('#books'),

        initialize: function () {
            _.bindAll(this, 'render', 'renderBook');
            this.collection = new bookCollection(books);
            this.render();
        },

        render: function () {
            _.each(this.collection.models, function (item) {
                this.renderBook(item);
            });
        },

        renderBook: function (item) {
            var BookView = new bookView({
                model: item
            });
            this.$el.append(BookView.render().el);
        }
    });

    return BookListView;

});

そして、コンソールは私にエラーを返します:オブジェクト[オブジェクトグローバル]にはメソッド「renderBook」がありません

私を手伝ってくれますか?

4

1 に答える 1

2

各呼び出しにコンテキストを明示的に追加してみてください。

_.each(this.collection.models, function (item) {
    this.renderBook(item);
}, this);
于 2013-07-04T10:22:21.743 に答える