我用这个简单的代码获得了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;
});因此,问题是:函数参数'mainApp‘在main.js回调中没有定义,这似乎是合乎逻辑的,因为app.js中的console.log()不会射击。有人能告诉我它有什么问题吗?
发布于 2015-01-01 20:16:27
只需删除app.js文件中的模块名(或将其更改为“app”)即可。您的app.js文件如下所示:
define(['angular', 'angular-route'], function (angular) {
var app = angular.module('mainApp', ['ngRoute']);
console.log('should be fired from app.js');
return app;
});http://requirejs.org/docs/api.html#modulename 您可以自己显式地命名模块,但这会降低模块的可移植性--如果您将文件移动到另一个目录,则需要更改该名称。通常最好避免在模块的名称中进行编码,而只是让优化工具在模块名称中刻录。优化工具需要添加名称,以便可以将多个模块捆绑在一个文件中,以便能够更快地在浏览器中加载。
https://stackoverflow.com/questions/27482394
复制相似问题