2017-02-28 1 views
1

구성 매개 변수를 기반으로 특정 서비스를 구성 요소의 주입 가능으로 선택해야합니다. 내가 본 모든 예제는 실제로 특정 서비스를 사용하고 구성 요소 생성시 사용합니다.런타임에 구성 요소에 대한 Angular 2 서비스를 선택하는 방법

런타임에이 주입을 수행 할 수있는 방법이 있습니까?

+1

참조 일부 구성에 따라 반환하는 공장을 사용할 수 있습니다. 'injector.get()'. RTM, https://angular.io/docs/ts/latest/guide/dependency-injection.html – estus

+0

빠르고 정확한 답장을 보내 주셔서 감사합니다. 구성 매개 변수 값을 기반으로 해당 체계를 사용할 수 있다고 생각합니다. – reza

답변

1

당신은 다른 인스턴스가

@NgModule({ 
    providers: [ 
    ConfigService, 
    { provide: APP_BASE_HREF, useFactory: loadConfig, deps: [ConfigService] }, 
    ], 
    ... 

예도 How to pass parameters rendered from backend to angular2 bootstrap method

function myServiceFactory(config:ConfigService) { 
    switch(config.someProp) { 
    case 'someValue': return new ClassA(); 
    default: return new ClassB(); 
    } 
} 

@Component({ 
    providers: [ 
    { provide: MyService, useFactory: myServiceFactory, deps: [ConfigService] } 
    ], 
    ... 
+0

MyService 및 ConfigService는 어디에 정의되어 있습니까? 각 코어의 일부입니까? – reza

+0

아니, 그저 사용자 정의 클래스의 예제 이름 일뿐입니다. –

관련 문제