servicios servicio entre ejemplo diferencia crear cli angularjs angularjs-service

entre - servicios angularjs



Inyectar un servicio en otro servicio en angularJS (3)

¿Es posible inyectar un servicio en otro servicio en angularJS?


Para evitar cualquier confusión, creo que también vale la pena mencionar que si está utilizando otros servicios (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 inyectándolos por separado con la anotación $ inject:

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


Sí. De esta manera (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 y se inyecta en la función $get del proveedor.


Sí. sigue la regla de inyección regular en angularjs.

app.service(''service1'', function(){}); //Inject service1 into service2 app.service(''service2'',function(service1){});

Gracias a @simon. Es mejor usar Inyección de matriz para evitar problemas menores.

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