我有3个模块:core,util和test。
如果依赖项设置如此,我会在初始化核心模块时遇到错误,因为它无法从util中找到提供程序。如果我删除此提供程序注入,一切正常。
我不知道我做错了什么。
var util = angular.module('util', []);
var core = angular.module('core', ['util']);
var test = angular.module('test', ['core', 'util']);
core.provider('core.OC', ['util.Path', function(Path){
this.$get = function(){
return {
get: function() { return 'OC!';}
}
};
}]);
util.provider('util.Path', function(){
this.$get = function(){
return {
get: function() { return 'Path!';}
}
};
});
test.controller('MainCtrl', ['$scope','util.Path', function($scope, Path) {
$scope.name = Path.get();
}]);
以下是此设置的plnkr: http://plnkr.co/edit/7VhdrdleNXHqqucSUcv9
答案 0 :(得分:1)
尝试将util.Path注入工厂函数。对core.OC的提供者调用运行到早期以注入util.Path。您必须在以后运行工厂函数时注入它。
http://plnkr.co/edit/7vBszzVlo14q0pljOarv?p=preview
core.provider('core.OC', function(){
this.$get = ['util.Path', function(Path){
return {
get: function() { return 'OC!';}
}
}];
});