0

私はプロバイダーを完全に把握しておらず、これを理解できません。私はコンストラクタを持つクラスを持っています: constructor(private http:Http, private url:string, private ext:string){}

ブートストラップ内で、DI に Http を提供するように指示するにはどうすればよいですか?その後、2 つの変数environment.urlを使用します。environment.ext

プロバイダーを使用する必要があることはわかっていますが、トークン文字列を受け入れないため、グローバルではなく、クラスの場合にのみ複数回指定する必要があります。

注:environment.urlクラス内で インポートできることはわかっていenvironment.extますが、依存関係を最小限に抑えるために、コンストラクターを介してこれら 2 つのパラメーターを設定したいと考えています。

4

1 に答える 1

0

最も簡単な解決策は、おそらく 2 つをクラスにラップし、そのクラスをプロバイダーとして提供することです。文字列の注入はやや困難です (可能ではありますが)。それを行いたい場合は、依存関係注入ガイドの非クラス依存関係というタイトルのセクションを読んでください。

または、抵抗が最も少ないパスが必要な場合。

//environment-config.ts
export class EnvironmentConfig {
    constructor(public url:string, ext:string);
}

//main.ts (or wherever you call bootstrap)
config:EnvironmentConfig = {url:"foo", ext:"bar"};
bootstrap(RootComponent, [ config, HTTP_PROVIDERS, disableDeprecatedForms(), provideForms()]);

//foo.component.ts
constructor(private http:Http, private config:EnvironmentConfig);
于 2016-07-27T18:55:27.457 に答える