我用这个需要js代码做错了什么

What am I doing wrong with this requirejs code?

本文关键字:代码 错了 什么 js      更新时间:2023-09-26

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

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

索引.html

<script data-main="scripts/main.js" src="scripts/lib/require.js"></script>

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

控制台输出

angular Object {_invokeQueue: Array[0], _runBlocks: Array[0]

, requires: Array[0], name: "testApp", provider: function...} 主.js:13

应用未定义

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

对象 {element: function, bootstrap: function, copy: function,

extend: function, equals: function...}

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

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

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