2016-09-02 18 views
0

私は以下のTSクラスを持っています。Angular2 DI静的プロパティへのアクセス

'{angle/core'からのインポート}

​​3210

AuthServiceUrl静的です。私はこの

constructor(private config: Config) 

私はこれをどのようにアクセスしないようなものを持っている場合はどうすればAngular2s DIフレームワークでは、このプロパティにアクセスすることができます。さらに、Configクラスをシングルトンにしたい場合、Angular2でどうすればいいですか?

+0

静的プロパティは、DIの目的を多少犠牲にします。静的でなければならない理由はありますか? –

答えて

0

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 {} 
関連する問題