我正在尝试在main.js中加载app.js文件,但我得到了:
TypeError:App未定义
的index.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
}
}
});
我做错了什么?
答案 0 :(得分: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();
}
}
}