【发布时间】:2015-02-13 10:50:17
【问题描述】:
我用这个简单的代码得到了 main.js:
'use strickt';
require.config({
paths: {
'angular' : 'libs/angular' ,
'angular-router' : 'libs/angular-route' ,
},
shim : {
'angular' : {
exports : 'angular'
},
'angular-router' : {
deps: ['angular']
}
}
});
require(['app'], function (mainApp) {
console.log(mainApp);
});
如您所见,我尝试在 require 回调中获取应用程序。但我得到的都是未定义的。 这是我在 app.js 文件中得到的内容:
define('mainApp', ['angular', 'angular-route'], function (angular) {
var app = angular.module('mainApp', ['ngRoute']);
console.log('should be fired from app.js');
return app;
});
所以问题: 在 main.js 回调中未定义的函数参数“mainApp”似乎是合乎逻辑的,因为 app.js 中的 console.log() 不会触发。谁能告诉我这是怎么回事?
【问题讨论】:
-
你不应该在 main.js 中
require(['angular', 'app'], function(mainApp){...})代替吗? -
为什么? Angular 作为全局 throw shim 包含在内,并在 app.js 中作为参数传递。所以它不应该在 require 回调中未定义。也许我真的不明白你的问题。如果是这样,请纠正我。
标签: javascript angularjs module requirejs amd