Tôi có một thành phần trong Angular2 đang thay đổi biến lớp "lang" trong dịch vụ translate.service.ts của tôi. Trong một thành phần khác tôi lấy một dict với bản dịch trên init. Nếu thành phần đầu tiên thay đổi ngôn ngữ dịch vụ sau này, tôi muốn tự động tìm nạp lại dict trong thành phần thứ hai. Làm thế nào để làm điều đó?Angular2 phát hiện thay đổi trong dịch vụ
thành phần đầu tiên:
setLang(lang) {
this._translateService.setLang(lang);
}
dịch vụ:
dict = { "en": {}};
lang = "en";
setLang(lang) {
this.lang = lang;
}
getLang() {
return this.dict;
}
Thứ hai thành phần:
ngOnInit() {
this.dict = this._translateService.getDict();
}
Trong dịch vụ, bạn có sửa đổi 'dict' hoặc bạn có thay thế không? Nếu bạn chỉ sửa đổi nó, thành phần thứ hai sẽ tự động nhận/xem các thay đổi vì nó có tham chiếu đến đối tượng 'dict' (không phải bản sao). –