AngularJS具有简单模块依赖性的未知提供程序

时间:2014-02-05 20:26:01

标签: javascript angularjs

我有3个模块:core,util和test。

  • util没有依赖项,有一个提供程序
  • 测试取决于util和core,并且有一个控制器
  • 核心依赖于util,有一个使用util的提供者

如果依赖项设置如此,我会在初始化核心模块时遇到错误,因为它无法从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

1 个答案:

答案 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!';}
    }
  }];
});