我对这个requirejs代码做错了什么?

时间:2013-09-05 17:06:37

标签: javascript requirejs

我正在尝试学习并使用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 ...}

1 个答案:

答案 0 :(得分:1)

我需要将main.js中的require()语句更改为

require(['app'], function(app) {
    console.info('angular', angular);
    console.info('app', app);
});

我删除了angular参数,以便对angular的引用将是全局对象,我现在看到参数的分配值与它们所需的顺序相同,这与angular使用依赖项注入的方式不同。 / p>