2
角度2では、特定のサービスに拡張できる1つの親サービスが必要です。 コンポーネントの属性は、使用するサービスを示します。 問題は、injector.get()
がクラス名ではなくクラスとしてparamを必要とするため、私はそれを行う方法がわかりません。ここにコードサンプルがあります。インジェクタを使用してクラス名に基づいてサービスを取得する
import {Injectable, Injector, Provider} from '@angular/core';
@Injectable()
export class ObjectFactoryService {
constructor(private injector: Injector) {
}
getObjectService(tableId: string): Provider {
//return this.injector.get(SpecificService); - works but this is class not classname
return this.injector.get(this.createObjectServiceName(tableId)); //error - provider not exists
}
private createObjectServiceName(tableId: string): string {
return tableId.charAt(0).toUpperCase() + tableId.slice(1) + "Service";
}
}
うわー使用してそれらを取得することができます - 作品 - 多くのおかげで – piernik