Chr*_*Den 2 ngx-translate angular
将 angular2 与 @ngx-translate 模块一起使用
我编码根据用户选择进行语言更改并使用以下方法设置语言:
this.translate.use('en');
Run Code Online (Sandbox Code Playgroud)
在其他组件的其他地方,我使用 .get observable 来检索一些标签。
this.translate.get(element.bucketId.toUpperCase()).subscribe( x => { bucket.bucketLabel = x; } );
Run Code Online (Sandbox Code Playgroud)
当前语言的初始标签加载正常,但是当执行 .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());
});
Run Code Online (Sandbox Code Playgroud)
这显然显得过分了。
使用管道和指令的代码可以完美地切换语言。
我误解了 .get 的作用吗?或者在进行语言切换时我还缺少其他什么技巧。不仅仅是做一个 this.translate.use(lang);
| 归档时间: |
|
| 查看次数: |
3390 次 |
| 最近记录: |