当我提供我的应用程序(ng服务)时,ConfigurationService.coucou()返回预期值。 但是如果我在AppModule的构造函数中使用--prod(ng serve --prod),window ['config'] ['coucou'],我得到了期望值,但valueConfigurationService.coucou()返回一个空字符串。
有什么想法吗?
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 :(得分:0)
我想你的问题就在这里:
this._coucou = coucou ? coucou : "";
它应该是这样的:
this._coucou === coucou ? coucou : "";