我有3个具有以下层次结构的模块
app.js
(function(ng, module){
module.config([function(){
console.log('main app');
}]);
}) (angular, angular.module('app', ['module']));
module.js
(function(ng, module){
module.config(['service', function(service){
console.log('module');
}]);
}) (angular, angular.module('module', ['sub-module']));
子module.js
(function (ng, module) {
module.factory('service', [function () {
console.log('test');
return {};
}]);
})(angular, angular.module('sub-module', []));
的index.html
<html ng-app="app">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.min.js"></script>
<script src="app.js"></script>
<script src="module.js"></script>
<script src="sub-module.js"></script>
</head>
<body>
<h1>Hello Plunker!</h1>
</body>
</html>
plnkr:http://plnkr.co/edit/8BHhpZHrIYpTd5gn0IsZ?p=preview
我在控制台中出现此错误:未捕获错误:[$ injector:modulerr]
注射器有什么问题?
答案 0 :(得分:1)
您正在尝试配置不存在的名为service的提供程序:
注意:下次使用非缩小版角度时,它会为您提供更多信息。
如果您要配置工厂称为服务,则必须将其设为提供者:
(function (ng, module) {
module.provider('service', [function () {
console.log('test');
return {
$get: function() { return {}; };
};
}]);
})(angular, angular.module('sub-module', []));
您也可以通过在您的情况下注入name_of_the_service + Provider来配置提供程序:
(function(ng, module){
module.config(['serviceProvider', function(serviceProvider){
console.log('module');
}]);
}) (angular, angular.module('module', ['sub-module']));