我正在尝试学习并使用requirejs进行种子应用,但我似乎无法理解语义。
我的问题不是文件的位置,似乎工作正常。
的index.html
<script data-main="scripts/main.js" src="scripts/lib/require.js"></script>
main.js
require.config({
shim: {
angular: {
exports: 'angular'
}
}
});
require(['app'], function(angular, app) {
console.info('angular', angular);
console.info('app', app);
});
app.js
define(['angular'], function(angular) {
return angular.module('testApp', [], null);
});
控制台输出
angular Object {_invokeQueue:Array [0],_ runBlocks:Array [0],需要:Array [0],name:“testApp”,provider:function ...} main.js:13
app undefined
所需的输出将app
包含返回的模块数据的内容,这些内容似乎当前已分配给angular
,而angular
应该只是angular
全局对象,
Object {element:function,bootstrap:function,copy:function,extend:function,equals:function ...}
答案 0 :(得分:1)
我需要将main.js中的require()
语句更改为
require(['app'], function(app) {
console.info('angular', angular);
console.info('app', app);
});
我删除了angular
参数,以便对angular的引用将是全局对象,我现在看到参数的分配值与它们所需的顺序相同,这与angular使用依赖项注入的方式不同。 / p>