我正在使用angular6。在app-root组件中,我将LanguageService注入到此app-root组件的构造函数中,如下所示:
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]);
}
}
但是问题仍然存在。我如何让应用程序组件等到LanguageService完成执行其构造函数,以便此行:
this.languageService.language
不会返回未定义
更新: 这是语言服务的构造函数:
constructor() {
let _language = localStorage.getItem(`pref_lang`);
if (_language == null) {
this._language = 'en';
}
}
答案 0 :(得分:0)
错误出在语言服务的构造函数中。
public function destroy(Request $request,$id)
{
$subclient = Sub_clients::findorfail($id);
if($subclient->delete()){
return new SubclientResource($subclient);
}
}
应该是
let _language = localStorage.getItem(`pref_lang`);
和
this._language = localStorage.getItem(`pref_lang`);
应该是
if (_language == null)