在angularJS中将服务注入到另一个服务中

在angularJS中将服务注入到另一个服务中,angularjs,angularjs-service,Angularjs,Angularjs Service,在angularJS中是否可以将一个服务注入另一个服务 是的。遵循angularjs中的常规注入规则 app.service('service1', function(){}); //Inject service1 into service2 app.service('service2',function(service1){}); 感谢@simon。最好使用阵列注入以避免缩小问题 app.service('service2',['service1', function(service1

在angularJS中是否可以将一个服务注入另一个服务

是的。遵循angularjs中的常规注入规则

app.service('service1', function(){});

//Inject service1 into service2
app.service('service2',function(service1){});
感谢@simon。最好使用阵列注入以避免缩小问题

  app.service('service2',['service1', function(service1) {}]);
对。像这样(这是一个提供者,但同样适用)

在本例中,
$db
是应用程序中其他位置声明的服务,并且
注入到提供者的
$get
函数中。

为了避免任何混淆,我认为还值得一提的是,如果您在childService中使用任何其他服务(例如$http、$cookies、$state),那么您还需要显式声明它们

e、 g

您可以在数组中声明您在子对象内部使用的服务,然后自动注入这些服务,也可以使用$inject注释单独注入这些服务:

childService.$inject = ["$http", "$cookies", "parentService"]; 
angular.module("app").service("childService ", childService );

我建议使用数组注入方式来避免将来要缩小脚本时出现问题:
['service1',function(service1){}]
您也可以使用或关联grunt任务。如果您想从同一服务访问另一个方法,我想您可能不想将同一服务注入该服务;但是,试图用“这个”来称呼它似乎对我不起作用,你有什么想法吗?谢谢只是想知道,如果您将“service1”注入“service2”,并将“service2”注入“service1”,那么会发生什么?如果一个服务的初始化依赖于另一个服务的初始化怎么办?@Xinan在这种情况下angularjs将抛出循环依赖性错误。所以要避免它,无论如何,这不是一个好的编程实践。
function() {
  var childService = function($http, $cookies, parentService) {

  // Methods inherited
  this.method1Inherited = parentService.method1();
  this.method2Inherited = parentService.method2();

  // You can always add more functionality to your child service

  angular.module("app").service("childService", ["$http", "$cookies", "parentService", childService]);

}());
childService.$inject = ["$http", "$cookies", "parentService"]; 
angular.module("app").service("childService ", childService );