2014-10-22 3 views
0

나는 각도로 공급자를 쓰려고하는데 $ get 메서드가 호출되지 않는 이유를 모르겠습니다.

나는 그것이 무엇인지는 알지만 모르겠다 때 각도로 호출되고, 그것은 공급자 때 주입인가요? 거기에서 돌아가려면 무엇을해야합니까? 누구든지 그것을 보여주는 간단한 예제를 만들 수 있습니까?

나는 AngularJS examples을 시험해 보았지만 나에게도 똑같은 결과가 나타납니다.

var RoutingProvider = (function() { 
    function RoutingProvider() { 
     this.$get = function ($injector) { 
      console.log("do something"); 

      return new RoutingProvider(); 
     }; 
     this.$get.$inject = ['$injector']; 
    } 
    RoutingProvider.prototype.register = function (routes) { 
     console.log(routes); 
    }; 
    return RoutingProvider; 
})(); 

EDIT : 여기

는 각 문서에서 제공 한 예이다.

function UnicornLauncher(apiToken, useTinfoilShielding) { 
    this.launchedCount = 0; 
    this.launch = function() { 
     this.launchedCount++; 
    } 
} 

bootstrap.provider('unicornLauncher', function UnicornLauncherProvider() { 
    var useTinfoilShielding = false; 

    this.useTinfoilShielding = function(value) { 
     useTinfoilShielding = !!value; 
    }; 

    this.$get = ["apiToken", function unicornLauncherFactory(apiToken) { 
     console.log("foo"); 
     // let's assume that the UnicornLauncher constructor was also changed to 
     // accept and use the useTinfoilShielding argument 
     return new UnicornLauncher(apiToken, useTinfoilShielding); 
    }]; 
}); 

bootstrap.config(["unicornLauncherProvider", function(unicornLauncherProvider) { 
    unicornLauncherProvider.useTinfoilShielding(true); 
}]); 

여기에 나와있는 plunk입니다.

다시 말하지만 $ get 함수에서 인쇄 된 메시지를 볼 수 없습니다.

+0

코드를 보여주십시오? 도움이 될 수도 있습니다. – vgoff

+0

코드를 표시하십시오 ... – user2717954

+0

예상대로 작동하지 않는 시도한 코드를 게시 할 수 있습니까? –

답변

0

저는 Fox 채널의 irc보다 Angular 채널에서 대답을 얻었습니다. 여기에 그가 말한 것이 있습니다.

이 당신이 서비스를 삽입 할 수 있습니다 두 개의 서로 다른 주입 장소 서비스, 컨트롤러, 지시, 오 실행하고 필터입니다하지만하지 제공 업체, 당신은 할 수 있습니다 또 다른 사출 장소 제공 및 구성 기능을 가지고 상수와 공급자를 주입하십시오 제공자는 "제공자 부분, 즉 구성"과 내부에 "공장"이라는 두 개의 부분을 가지고 있습니다. 제공자가 인 경우 다른 제공자 또는 구성 부분에 주입하면 $ get입니다. "unicornLauncher"를 공동으로 삽입 할 때 이름에 제공자를 추가해야합니다. nfig 당신은 "unicornLauncherProvider"를 넣어야합니다. 컨트롤러에 가서 unicornLauncher를 주입하면 그 안에 팩터 리 (AKA $ get)을 주입 할 수 있습니다. 즉 공급자 의 일부가 아닌 공장 때문에 액세스 에 그 안에 "usetinfoilshielding"($ 수) 그래서 기본적으로 공급자가 두 부분 이며 하나를 사용하거나 다른 당신이 모두

을 사용할 수 없습니다 내부
관련 문제