config変数を宣言し、https://angular.io/docs/ts/latest/cookbook/dependency-injection.html#!#opaque-tokenで説明されているように、opaque-tokenを宣言できるすべての場所で使用します。
宣言以下同じconfig
インタフェースとインタフェースプロバイダ:
=>は
export interface Config {
apiEndpoint: string;
}
export const CONFIG: Config = {
apiEndpoint : 'http://api.url.com'
};
=>は
import { OpaqueToken } from '@angular/core';
export let APP_CONFIG = new OpaqueToken('app.config');
いくつかの共有モジュールでそれを使用するconfig.provider.tsをconfig.ts以下のようになります。
=> shared.module.ts
import { NgModule } from '@angular/core';
import { CONFIG } from './config';
import { APP_CONFIG } from './config.provider';
@NgModule({
providers : [
{
provide : APP_CONFIG,
useValue: CONFIG
}
]
})
export class SharedModule {}
静的プロパティは、DIの目的を多少犠牲にします。静的でなければならない理由はありますか? –