0

我刚开始学习主干,想使用 require js 管理我的依赖项。

我的代码如下:

主.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; 

}

浏览器控制台向我抛出错误:

未捕获的类型错误:无法读取未定义的属性“木偶”

我究竟做错了什么 ... ?

4

1 回答 1

0

更改您的 Backbone shim 以利用Backbone导出:

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

因为 Backbone 将自己定义为Backboneand not backbone。其他地方可能存在问题,但您绝对必须这样做。

于 2013-11-11T16:45:17.600 回答