我是AngularJS的新手,正在创建一个将使用Grunt构建的应用程序。
当我构建并运行我的应用程序时,我注意到一些与依赖项加载顺序相关的问题:
Uncaught Error: [$injector:nomod] Module 'mycompany.admin.forms' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
http://errors.angularjs.org/1.2.13/$injector/nomod?p0=mycompany.admin.forms
在构建的应用程序文件中,模块在声明之前被使用:
angular.module('mycompany.admin.forms').controller('editController', ['$scope', function($scope) {
// ...
}]);
angular.module('mycompany.admin.forms', [])
.config(['$routeProvider', function($routeProvider) {
// ...
}]);
以下是我项目的gruntfile.js中相关的代码片段:
grunt.initConfig({
distdir: 'build',
pkg: grunt.file.readJSON('package.json'),
src: {
js: ['src/**/*.js'],
},
concat: {
dist: {
src: ['<%= src.js %>', '<%= src.jsTpl %>'],
dest: '<%= distdir %>/admin/app.js'
}
}
...
});
我知道可以通过将给定模块的所有源代码放入一个文件中来解决此问题;然而,我想尝试将每个内容(每个控制器、每个服务等)保留在其自己的文件中。
我该如何解决这个依赖项加载顺序问题?
'{.tmp,<%= config.client %>}/{app,components}/**/*.module.js', '{.tmp,<%= config.client %>}/{app,components}/**/*.js'
。这可能在更复杂的模块嵌套结构中无法正常工作。 - yorch