简体   繁体   English

无法理解为什么我的Angular Dependency无法解决?

[英]Can't understand why my Angular Dependencies aren't resolving?

Why are my modules not available to the $injector service? 为什么我的模块不能用于$ injector服务? Console is reporting 'unknown provider' for both my baseHello and geoHello services. 控制台正在报告我的baseHellogeoHello服务的“未知提供程序”。 Obviously I have missed something fundamental, but for the life-of-me I can't see it! 显然,我错过了一些基本知识,但是对于我而言,我看不到它!

http://plnkr.co/edit/3Y0WeIH1dCkWKMhRJKnM?p=preview 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']);

There is an unresolved dependency (r) in your factory definition baseHello 您的工厂定义baseHello有未解决的依赖项(r)

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

I think you have a typo in your code. 我认为的代码中有错字 You have a dependency for the baseHello service called r which is not resolveable. 您有一个名为rbaseHello服务的依赖项,该依赖项无法解析。 It is not necessary as you do not seem to use it, so if you take it out then your code will run in your Plunker. 不必要,因为您似乎没有使用它,因此,如果将其取出,则代码将在您的Plunker中运行。

Before: 之前:

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

After: 后:

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

See here for a working Plunker. 请参阅此处以了解可用的柱塞。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM