2017-02-28 15 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はどこに定義されていますか? angleCoreの一部ですか? – reza

+0

いいえ、これはカスタムクラスの名前の例です –

関連する問題