0

バックボーン ビューをレンダリングするルーターがあります。(requirejsも使用しています)

    initialize: function () {
        var crateCollection = new CrateCollection();
        crateCollection.fetch({
            success: function()
            {
                var cratesView = new CratesView({ model: crateCollection });
            }
        });
    }

ビューの初期化では、コレクションはすべて問題なく、console.log に出力して、適切に入力されていることを確認できます。

    initialize: function (models) {
        var crateCollection = models.model;
        console.log(crateCollection);
        this.render();
    }

ただし、レンダリング関数を実行すると、crateCollection は未定義であり、JS は「未定義のモデルにアクセスできません」というエラーを表示します。

    render: function () {
        $(this.el).html(this.template());
        var that = this;
        console.log(this.crateCollection);
        _.each(this.crateCollection.models, function (item) {
            that.renderCrate(item);
        }, this);
    },

この関数からこのコレクションにアクセスできないのはなぜですか? ビューを初期化する前に非同期呼び出しが成功するのを待つため、間違いなくデータが入力されている必要があるため、問題は発生しません。

私は何が欠けていますか?

4

1 に答える 1