我在Angular2中有一個組件,它正在改變服務translate.service.ts中的「lang」類變量。在另一個組件中,我使用init中的翻譯來獲取字典。如果第一個組件稍後更改了服務語言,我想要自動在第二個組件中重新獲取該詞典。我怎麼做?Angular2檢測服務中的變化
第一部分:
setLang(lang) {
this._translateService.setLang(lang);
}
服務:
dict = { "en": {}};
lang = "en";
setLang(lang) {
this.lang = lang;
}
getLang() {
return this.dict;
}
第二部分:
ngOnInit() {
this.dict = this._translateService.getDict();
}
在服務中,你是修改'dict'還是替換它?如果只修改它,第二個組件會自動獲取/查看更改,因爲它具有對'dict'對象的引用(不是副本)。 –