0

バックボーンの学習を始めたばかりで、require js を使用して依存関係を管理したいと考えています。

私のコードは次のとおりです。

main.js:

//Require.js 
require.config({

paths   : {
    jQuery          : '//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min', 
    jQueryUI        : '//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min', 
    lodash          : 'libs/lodash/lodash', 
    backbone        : 'libs/backbone/backbone',
    marionette      : 'libs/marionette/marionette' 
}, 

shim    : {
    backbone: {
        deps        : ['jQuery', 'lodash'], 
        exports     : 'backbone'
    }, 
    marionette: {
        deps        : ['backbone'], 
        exports     : 'marionette'
    }
}

}); 

require(['initialize'], function(initializer){
    alert("initialized");
});

初期化.js:

define(['backbone', 'marionette'], function(Backbone, Marionette){

        var appZwoop = new Backbone.Marionette.Application();

        var options = {

        };

        //Initialize functions 
        appZwoop.addInitializer(function(options){

        }); 

        //Application events 
        appZwoop.on("initialize:before", function(options){

        });

        appZwoop.on("initialize:after", function(options){

        });

        //Start the application 
        appZwoop.start(options);

        appZwoop.addRegions({
            mainRegion : "#mainRegion", 
            headerRegion: "#headerRegion"
        });

        return appZwoop; 

}

ブラウザのコンソールに次のエラーが表示されます。

キャッチされていない TypeError: 未定義のプロパティ 'Marionette' を読み取ることができません

私は何を間違っていますか...?

4

1 に答える 1

0

バックボーン shim を変更Backboneして、エクスポートを活用します。

backbone: {
    deps        : ['jQuery', 'lodash'], 
    exports     : 'Backbone'
}, 

Backbone は自分自身をBackboneでなくとして定義しているためbackboneです。他の場所に問題があるかもしれませんが、間違いなくこれを行う必要があります。

于 2013-11-11T16:45:17.600 に答える