无法使用ngx translate/core - angular 2 typescript获得动态的文本翻译

nka*_*du1 10 javascript typescript ionic2 angular

问题:

我有来自Json文件的动态文本.我正在使用这样的translate.get()方法:

this.translate.get('keyInJson').subscribe(res => { 
                this.valueFromJson = res;
/*
creating an object using above text
*/
            });
Run Code Online (Sandbox Code Playgroud)

因为这是异步的,所以当页面呈现时我无法获得翻译的文本.我尝试在Observables,Promises中包装上面的方法但是在页面加载期间它无法获得翻译版本的文本.在尝试不同的方法之后,我能够获得翻译后的文本,但代码变得过于复杂且不可靠.

预期/期望的行为 应加载翻译版本的文本

复制问题 动态生成文本而不是在html上对其进行硬编码,然后尝试渲染翻译版本.

环境 Angular2,打字稿,离子2

Hal*_*alp 7

@ nkadu1

instant(key:string | Array,interpolateParams?:Object):string | Object:获取键(或键数组)的即时翻译值.此方法是同步的,默认文件加载器是异步的.您有责任了解何时加载了翻译,并且使用此方法是安全的.

const translated = this.translate.instant('keyInJson');
Run Code Online (Sandbox Code Playgroud)

@masterach TranslateHttpLoader是你正在寻找的.这是一篇可能对您有所帮助的文章.


Ari*_*Ari 1

为什么不在html中使用管道而不是在ts中进行翻译?

<div>{{ 'HELLO' | translate:param }}</div>
Run Code Online (Sandbox Code Playgroud)

或者

<div [innerHTML]="'HELLO' | translate"></div>
Run Code Online (Sandbox Code Playgroud)