Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular TranslateService.use()工作时间的一半(ngx translate)_Angular_Internationalization_Observable_Translation_Ngx Translate - Fatal编程技术网

Angular TranslateService.use()工作时间的一半(ngx translate)

Angular TranslateService.use()工作时间的一半(ngx translate),angular,internationalization,observable,translation,ngx-translate,Angular,Internationalization,Observable,Translation,Ngx Translate,我的应用程序通过一些本地化模块内部的可观察性从后端检索有关本地化的信息 constructor(translate: TranslateService){ locale.subscribe(fetched_lang => translate.use(fetched_lang) ); } 问题是,可以在根组件init之前和之后检索语言。 在第一种情况下,代码可以正常工作,但在第二种情况下,translate.use()不更新翻译,但根据网络,devtools获取带有翻译的j

我的应用程序通过一些本地化模块内部的可观察性从后端检索有关本地化的信息

constructor(translate: TranslateService){
  locale.subscribe(fetched_lang =>
    translate.use(fetched_lang)
  );
}
问题是,可以在根组件init之前和之后检索语言。 在第一种情况下,代码可以正常工作,但在第二种情况下,
translate.use()
不更新翻译,但根据网络,devtools获取带有翻译的json

之后,我尝试用simple手动切换不同的语言

<button (click)="translate.use(other_lang)"></button>

当我点击按钮时,首先快速显示了来自
fetched_language
的翻译,然后切换到
other_language

问题是:如何在检索语言后立即更改翻译?

答案是(可能)NgZone没有检测到异步数据流。这就是为什么您需要将
translate.use()
放在
NgZone.run()中的原因