2017-09-11 20 views
0

當我服務我的應用程序(ng服務)時,ConfigurationService.coucou()返回期望值。 但是,如果我在AppModule的構造函數中使用--prod(ng serve --prod),window ['config'] ['coucou'],我得到期望值,但valueConfigurationService.coucou()返回一個空字符串。InjectionToken空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 : "";