AngularJS和RequireJS:无模块:myApp

AngularJS和RequireJS:无模块:myApp,angularjs,requirejs,Angularjs,Requirejs,我第一次尝试将AngularJS与RequireJS结合使用作为基础。据我所知,经过大量调试后,我正在以正确的顺序加载所有模块,但当应用程序运行时,Angular会抛出错误/异常,并显示以下消息: 参数“fn”不是函数,已从myApp获取字符串 由于语法错误,我以前看到过这条消息,所以即使我多次查看代码,我也不排除出现简单语法错误的可能性。现在还不做小提琴,以防它像语法错误一样简单,但如果有要求,我当然会这么做 更新:我刚刚注意到,在标记中设置ng app=“myApp”时,我还发现了一个额外的

我第一次尝试将AngularJS与RequireJS结合使用作为基础。据我所知,经过大量调试后,我正在以正确的顺序加载所有模块,但当应用程序运行时,Angular会抛出错误/异常,并显示以下消息:

参数“fn”不是函数,已从myApp获取字符串

由于语法错误,我以前看到过这条消息,所以即使我多次查看代码,我也不排除出现简单语法错误的可能性。现在还不做小提琴,以防它像语法错误一样简单,但如果有要求,我当然会这么做

更新:我刚刚注意到,在
标记中设置ng app=“myApp”时,我还发现了一个额外的错误

无模块:myApp

更新II:好的,事实证明,这确实是下面未包含的唯一文件中的语法错误。我仍然有更新I的问题

RequireJS引导程序

'use strict';
define([
    'require',
    'angular',
    'app/myApp/app',
    'app/myApp/routes'

], function(require, ng) {
    require(['domReady'], function(domReady) {
        ng.bootstrap(domReady, ['myApp']);
    });
});
app.js

'use strict';
define([
    'angular',
    './controllers/index'
], function(ng) {
    return ng.module('myApp', [
         'myApp.controllers'
    ]);
    }
);
控制器/索引

'use strict';
define([
    './front-page-ctrl'
], function() {

});
控制器/模块

'use strict';
define(['angular'], function (ng) {
    return ng.module('myApp.controllers', []);
});
控制器/首页ctrl

'use strict';
define(['./module'], function(controllers) {
    controllers.
        controller('FrontPageCtrl', ['$scope', 
             function($scope) {
                console.log('I\'m alive!');
            }
        ]);
});
状态为的RequireJS文档:

由于DOM就绪是一种常见的应用程序需求,理想情况下 可以避免上述API中的函数。domReady模块也可以 实现加载器插件API,因此您可以使用加载器插件 用于强制 require()回调函数以等待DOM准备就绪 执行。domReady将在用作 加载器插件:

因此,当您需要“domReady”时,结果是一个函数:

函数domReady(回调){ 如果(isPageLoaded){ 回拨(doc); }否则{ readycall.push(回调); } 返回准备就绪; } 但是当您将
domReady
字符串附加到
签名结果将是实际的文档元素:

“严格使用”;
定义([
“要求”,
"棱角",,
'应用程序/我的应用程序/应用程序',
“应用程序/我的应用程序/路线”
],功能(需要,ng){
require(['domReady!'],函数(domReady){
//domReady现在是一个文档元素
引导(domReady,['myApp']);
});
});
从html中删除ng app=“myApp”。 因为它已经手动引导
ng.bootstrap(domReady,['myApp'])

谢谢您的回复。我部分地知道你在说什么,但我想我在使用domReady时没有后面的感叹号,因为它不在指南中。不过,你的回答确实让我确信它应该在那里。然而,恐怕这并没有解决问题。你不应该在问题发布后更改它,因为现有的答案没有上下文。关于您新的“无模块”问题,这是因为您正在使用
ng应用程序
,而您不应该这样做<代码>ng。引导程序
的作用与
ng应用程序
完全相同。有关更多信息,请参见。是的,对此表示抱歉。在我更新它之后,我意识到了引导的部分。当你给我指出正确的方向时,我会将你的答案标记为已被接受。