无法理解为什么我的Angular Dependencies没有解决?

时间:2014-10-06 16:26:14

标签: javascript angularjs

为什么我的模块不能用于$ injector服务?控制台正在为我的baseHellogeoHello服务报告“未知提供商”。显然我错过了一些基本的东西,但对于我的生活,我看不到它!

http://plnkr.co/edit/3Y0WeIH1dCkWKMhRJKnM?p=preview

/**Modules, we flesh these out below**/
angular.module('demo.services',[]);
angular.module('demo.directives',['demo.services']);
angular.module('demo',['demo.services','demo.directives']);

/**Application Module, Dependency on geoHello Service**/
angular.module('demo')
.controller('myCtrl',['$scope', 'geoHello',function($scope,geoHello){
  $scope.test = geoHello.msg
}]);

/**Base Hello Service**/
angular.module("demo.services")
.factory("baseHello",function(r){
  return{
    'msg': 'Hello from ...'
  }
});

/**Service With Dependency on baseHello**/
angular.module("demo.services")
.factory("geoHello",['baseHello',function(baseHello){
  var msg = baseHello.msg.replace("...","world");
  return{
    'msg': msg
  }
}]);

/**Directive With Dependency on geoHello**/
angular.module("demo.directives")
.directive('ngDemo',['geoHello',function(geoHello){
  return{
    'template': geoHello.msg
  }
}]);

angular.bootstrap(document,['demo']);

2 个答案:

答案 0 :(得分:2)

工厂定义baseHello

中存在未解决的依赖关系(r)
/**Base Hello Service**/
angular.module("demo.services")
.factory("baseHello",function(r){
  return{
    'msg': 'Hello from ...'
  }
});

答案 1 :(得分:1)

我认为你的代码中有一个拼写错误。您对名为baseHello的{​​{1}}服务具有依赖性,该服务无法解析。没有必要,因为你似乎没有使用它,所以如果你把它拿出来,那么你的代码将在你的Plunker中运行。

<强>之前:

r

<强>后:

angular.module("demo.services")
.factory("baseHello",function(r){
  return{
    'msg': 'Hello from ...'
  }
});

有关正在使用的Plunker,请参阅here