将 angular2 与 @ngx-translate 模块一起使用
我根据用户选择进行语言更改并使用以下代码设置语言:
this.translate.use('en');
在其他组件的其他地方,我使用 .get observable 来检索一些标签。
this.translate.get(element.bucketId.toUpperCase()).subscribe( x => { bucket.bucketLabel = x; } );
当前语言的初始标签加载正常,但是执行 .use 时,标签不会更改为新语言。observable 不会触发。
为了解决这个问题,我必须执行以下操作:
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);