@ NGX-翻译得观察到不触发对语言变化

@ NGX-翻译得观察到不触发对语言变化

问题描述:

使用angular2与@ NGX-转换模块@ NGX-翻译得观察到不触发对语言变化

我的代码,不基于用户选择的语言变化,并使用设置语言:

this.translate.use('en'); 

在其他组件中的其他地方,我使用.get observable来检索一些标签。

this.translate.get(element.bucketId.toUpperCase()).subscribe(x => { bucket.bucketLabel = x; }); 

当前语言加载罚款最初的标签,但在执行的时候。使用,标签不更改为新的语言。观察者不会开火。

为了解决这个问题我必须做到以下几点:

this.translate.get(element.bucketId.toUpperCase()).subscribe(x => { bucket.bucketLabel = x; }); 
this.translate.onLangChange.subscribe(event => { 
    bucket.bucketLabel = this.translate.instant(element.bucketId.toUpperCase()); 
}); 

这显然似乎过高。

使用管道和指令的代码完美地切换语言。

我误解了.get做了什么?还是有一些其他的技巧我在执行语言切换时缺少。不只是做一个this.translate.use(lang);

尝试使用.stream()方法,它将在语言更改时返回新值。

https://github.com/ngx-translate/core#methods

+0

this.translate.stream('DASHBOARD.LOGOUT');出现了:属性'流'不存在类型'TranslateService' –