如何在 Angular 中使用 ngx-translate 平移对象而不强制重新渲染?

问题描述 投票:0回答:1

在我们的 Angular 应用程序中,我们有一个内部库,其中包含多个组件(如标头...),我们在 Angular 应用程序中动态使用它们,并向它们传递一些属性(如标题的简单字符串,或复杂的数组和对象) 。我的问题是,我正在使用 ngx-translate 翻译应用程序,当我翻译传递给这些组件的属性时,翻译很好,但视图没有用新语言更新! 应用程序的语言由用户在另一个组件中更改,我有一个获取所选语言的服务方法,并将其存储在本地存储中。

我尝试使用 setTimeOut 强制重新渲染组件(是的,效率不高!),以便传递新值并更新视图。我知道更改检测,并且使用 detectorChanges 方法实现了它,但它不起作用!问题仍然是一样的:翻译很好,但视图没有改变! 我在一个简单的段落元素中测试了相同的数组属性,它工作正常,它得到了正确的翻译。

angular ngx-translate angular2-changedetection angular-changedetection
1个回答
0
投票

我不确定这是否适合你,但我会尝试

例如我们正在构建语言选择器

<button (click)="useLanguage('de')">de</button>
<button (click)="useLanguage('en')">en</button>
<button (click)="useLanguage('fr')">de</button>

在你的组件中

useLanguage(language: string): void {
    this.translate.use(language);
}
© www.soinside.com 2019 - 2024. All rights reserved.