我的应用程序通过某些本地化模块内部的可观察的内容从后端检索有关本地化的信息
constructor(translate: TranslateService){
locale.subscribe(fetched_lang =>
translate.use(fetched_lang)
);
}
问题在于,语言可以作为before以及after根组件init进行检索。在第一种情况下,代码工作正常,但在第二种情况下,translate.use()
不会更新翻译,但根据网络devtools会获取带有翻译的json。
之后,我尝试简单地手动打开其他语言
<button (click)="translate.use(other_lang)"></button>
[当我单击按钮时,首先迅速显示fetched_language
的翻译,然后切换到other_lang
。
问题是:如何在检索语言后立即更改翻译?
答案是(可能是)NgZone未检测到异步数据流。因此,您需要将translate.use()
放入NgZone.run()