2017-09-11 3 views
0

私のアプリケーション(ng serve)を提供すると、ConfigurationService.coucou()は期待値を返します。 AppModuleのコンストラクタで--prod(ng serve --prod)、window ['config'] ['coucou']を使用すると期待値が得られますが、valueConfigurationService.coucou()は空の文字列を返します。InjectionToken in prod

AppModule:

import { BrowserModule } from '@angular/platform-browser'; 
import { NgModule } from '@angular/core'; 
import { FormsModule } from '@angular/forms'; 
import { HttpModule } from '@angular/http'; 

import { AppComponent } from './app.component'; 

import { ConfigurationService, COUCOU } from './configuration.service'; 

@NgModule({ 
    declarations: [ 
    AppComponent 
    ], 
    imports: [ 
    BrowserModule, 
    FormsModule, 
    HttpModule 
    ], 
    providers: [ConfigurationService,{ provide: COUCOU, useValue: window['config']['coucou'] }], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { } 

configuration.service:

import { Injectable, Inject, InjectionToken } from '@angular/core'; 

export const COUCOU = new InjectionToken<string>('coucou'); 

@Injectable() 
export class ConfigurationService { 
    private _coucou: string; 

    get coucou(): string { 
     return this._coucou; 
    } 

    constructor(@Inject(COUCOU) coucou: string) { 
     console.log('ConfigurationService.coucou : ' + coucou); 
     this._coucou = coucou ? coucou : ""; 
    } 
} 

答えて

0

私はあなたの問題はここにあると思います:

this._coucou = coucou ? coucou : ""; 

それは次のようになります。

this._coucou === coucou ? coucou : ""; 
関連する問題