¿Es posible inyectar un servicio en otro servicio en angularJS?
angularjs
angularjs-service
Le Garden Fox
fuente
fuente
['service1', function(service1) {}]
ngmin
tarea gruñida asociada.Si. Así (este es un proveedor, pero se aplica lo mismo)
module.provider('SomeService', function () { this.$get = ['$q','$db','$rootScope', '$timeout', function($q,$db,$rootScope, $timeout) { return reval; } });
En este ejemplo,
$db
es un servicio declarado en otra parte de la aplicación e inyectado en la$get
función del proveedor .fuente
Para evitar cualquier confusión, creo que también vale la pena mencionar que si está utilizando cualquier otro servicio (por ejemplo, $ http, $ cookies, $ state) en su childService, entonces también debe declararlos explícitamente.
p.ej
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]); }());
Puede declarar los servicios que está utilizando dentro de su hijo en una matriz y luego se inyectan automáticamente, o inyectarlos por separado con la anotación $ inject:
childService.$inject = ["$http", "$cookies", "parentService"]; angular.module("app").service("childService ", childService );
fuente