Angular @ngx translate可观察到语言变化不触发

Angular @ngx translate可观察到语言变化不触发,angular,ngx-translate,Angular,Ngx Translate,将angular2与@ngx翻译模块一起使用 I根据用户选择更改语言并使用以下方式设置语言的代码: this.translate.use('en'); 在其他组件的其他地方,我使用.get observable来检索一些标签 this.translate.get(element.bucketId.toUpperCase()).subscribe( x => { bucket.bucketLabel = x; } ); 当前语言的初始标签加载良好,但在执行.use时,标签不会更改为新语言

将angular2与@ngx翻译模块一起使用

I根据用户选择更改语言并使用以下方式设置语言的代码:

this.translate.use('en');
在其他组件的其他地方,我使用.get observable来检索一些标签

this.translate.get(element.bucketId.toUpperCase()).subscribe( x => { bucket.bucketLabel = x; } );
当前语言的初始标签加载良好,但在执行.use时,标签不会更改为新语言。可观察到的物体不会开火

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

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()
方法,当语言更改时,它将返回新值

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


this.translate.stream('DASHBOARD.LOGOUT');发现:类型“TranslateService”上不存在属性“stream”,节省了大量时间…竖起了this.translate.stream('DASHBOARD.LOGOUT');发现:类型“TranslateService”上不存在属性“stream”,节省了大量时间…竖起大拇指