0

我正在尝试在 main.js 中加载 app.js 文件,但我得到:

类型错误:应用程序未定义

索引.html

<script data-main='js/main' src="require.min.js"></script>

/js/main.js

require([
    'app'
],function(App){
    console.log(App); // App is undefined
    App.initialize();
});

/js/app.js

define([
    'router'
], function(Router) {
    var initialize = function() {
        Router.initialize();

        return {
            initialize : initialize
        }
    }
});

我究竟做错了什么?

4

1 回答 1

2

当您需要模块“app”时,该App变量将引用“app”模块返回的任何内容。但是,在您的情况下,它不会返回任何内容:

function(Router) {
    var initialize = function() {
        Router.initialize();

        return {
            initialize : initialize
        }
    }

    // returns nothing, i.e. undefined
}

看起来你应该将return块移到initialize函数之外,本质上它可以重写为:

function (Router) {
    return {
        initialize: function() {
            Router.initialize();
        }
    }
}
于 2013-10-04T21:38:24.940 回答