【发布时间】:2015-04-11 19:28:28
【问题描述】:
我第一次尝试以this guide 为基础将AngularJS 与RequireJS 结合使用。据我所知,经过大量调试后,我正在以正确的顺序加载所有模块,但是当应用程序运行时,Angular 会抛出错误/异常,并显示以下消息:
参数 'fn' 不是函数,从 myApp 获取字符串
由于语法错误,我之前看到过此消息,因此即使我已经多次查看代码,我也不会排除简单语法错误的可能性。暂时不要制作小提琴,以防它像语法错误一样简单,但如果需要,我当然会这样做。
更新:我刚刚注意到在 <html> 标签中设置 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', []);
});
controllers/front-page-ctrl
'use strict';
define(['./module'], function(controllers) {
controllers.
controller('FrontPageCtrl', ['$scope',
function($scope) {
console.log('I\'m alive!');
}
]);
});
【问题讨论】:
-
发布后您不应更改您的问题,因为现有答案没有上下文。关于您的新“无模块”问题,这是因为您不应该使用
ng-app。ng.bootstrap的用途与ng-app完全相同。欲了解更多信息,请参阅stackoverflow.com/a/17498509/1095616。 -
是的,很抱歉。在我更新它之后,我意识到了引导部分。当您在此处指出正确的方向时,会将您的答案标记为已接受。