1

我正在尝试为种子应用程序学习和使用 requirejs,但我似乎无法理解语义。

我的问题不是文件的位置,它似乎工作正常。

索引.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);
});

应用程序.js

define(['angular'], function(angular) {
    return angular.module('testApp', [], null);
});

控制台输出

角度对象 {_invokeQueue: Array[0], _runBlocks: Array[0], requires: Array[0], name: "testApp", provider: function...} main.js:13

应用未定义

所需的输出将具有app返回的模块数据的内容,这些数据似乎当前被分配给angular并且angular应该只是angular全局对象,类似于以下内容

对象{元素:函数,引导:函数,复制:函数,扩展:函数,等于:函数...}

4

1 回答 1

1

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

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

我删除了angular参数,以便对 angular 的引用成为全局对象,我现在看到参数的赋值顺序与它们所需的顺序相同,这与 angular 使用依赖注入的方式不同。

于 2013-09-05T17:36:32.483 回答