在app-root组件中,我在这个app-root组件的构造函数中注入LanguageService,如下所示:
constructor (private router: Router, private languageService: LanguageService) { }此LanguageService将访问本地存储,并在其构造函数中初始化一些变量。问题是,每当我试图访问app-root构造函数中的任何这些变量时,我都会得到未定义的值。因此,我尝试了诸如AfterViewInit这样的角度生命周期挂钩,如下所示:
export class AppComponent implements AfterViewInit {
constructor(private router: Router, private languageService: LanguageService) { }
ngAfterViewInit() {
this.router.navigate([this.languageService.language]);
}
}但问题仍然存在。如何让app组件等待直到LanguageService完成其构造函数的执行,以便这一行:
this.languageService.language不会返回未定义的
更新:这里的是语言服务的构造函数:
constructor() {
let _language = localStorage.getItem(`pref_lang`);
if (_language == null) {
this._language = 'en';
}
}发布于 2018-08-27 11:48:35
错误出现在语言服务的构造函数中。
let _language = localStorage.getItem(`pref_lang`);应该是
this._language = localStorage.getItem(`pref_lang`);和
if (_language == null)应该是
if (this._language == null)https://stackoverflow.com/questions/52038505
复制相似问题