programing

다른 서비스에 서비스를 주입하는 각도JS

elseif 2023. 3. 5. 09:33

다른 서비스에 서비스를 주입하는 각도JS

한 서비스를 angularJS에서 다른 서비스에 주입할 수 있습니까?

네, angularjs의 규칙대로 주사하세요

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

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

@simon 덕분입니다.문제를 최소화하려면 어레이 주입을 사용하는 것이 좋습니다.

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

네. 이와 같이 (이것은 프로바이더이지만, 같은 것이 적용됩니다.)

    module.provider('SomeService', function () {


    this.$get = ['$q','$db','$rootScope', '$timeout', 
                function($q,$db,$rootScope, $timeout) {
          return reval;
    }
    });

이 예에서는,$db앱의 다른 곳에서 선언되어 프로바이더에 주입된 서비스입니다.$get기능.

혼동을 피하기 위해 자녀서비스에서 다른 서비스($http, $cookies, $state 등)를 사용하고 있는 경우에도 명시적으로 선언할 필요가 있다고 생각합니다.

예.

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]);

}());

자녀 내부에서 사용하고 있는 서비스를 어레이 내에서 선언한 후 자동으로 주입하거나 $inject 주석을 사용하여 별도로 주입할 수 있습니다.

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

언급URL : https://stackoverflow.com/questions/21004760/injecting-a-service-into-another-service-in-angularjs