我有 3 个具有以下层次结构的模块
- app.js
- 模块.js
- 子模块.js
- 模块.js
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']));
子模块.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]
喷油器出了什么问题?
最佳答案
您正在尝试配置一个名为 service 的提供程序,但该提供程序不存在:
注意:下次使用 Angular 的非缩小版本时,它将为您提供更多信息。
如果您想配置名为服务的工厂,则必须将其设为提供者:
(function (ng, module) {
module.provider('service', [function () {
console.log('test');
return {
$get: function() { return {}; };
};
}]);
})(angular, angular.module('sub-module', []));
您还可以通过注入(inject) name_of_the_service + Provider 来配置提供商,根据您的情况:
(function(ng, module){
module.config(['serviceProvider', function(serviceProvider){
console.log('module');
}]);
}) (angular, angular.module('module', ['sub-module']));
关于javascript - 未找到 Angular JS 服务(无法实例化模块),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28482456/