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

标签 javascript angular typescript ionic2

问题:

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

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

由于这是异步的,因此我无法在页面呈现时获取翻译后的文本。 我尝试将上述方法包装在 Observables 和 Promises 中,但它无法在页面加载期间获取文本的翻译版本。 在尝试了不同的方法后,我能够获得翻译后的文本,但代码变得过于复杂且不可靠。

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

问题重现 动态生成文本而不是在 html 上对其进行硬编码,然后尝试呈现翻译版本。

环境 Angular2、 typescript 、 ionic 2

最佳答案

@nkadu1

instant(key: string|Array, interpolateParams?: Object): string|Object: Gets the instant translated value of a key (or an array of keys). This method is synchronous and the default file loader is asynchronous. You are responsible for knowing when your translations have been loaded and it is safe to use this method.

const translated = this.translate.instant('keyInJson');

@masterach TranslateHttpLoader是你要找的。 Here's an article这可能对您有所帮助。

关于javascript - 无法使用 ngx translate/core - angular 2 typescript 获取文本的动态翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43004797/

相关文章:

JavaScript 错误 : Permission denied to access property 'resizeTo'

javascript - jQuery 从特定 div 内的所有输入、文本区域和选择元素中删除类

如果点击离开,Angular2 滚动我自己的下拉菜单隐藏?

javascript - 如何将预先存在的标签添加到 Angular2 中的 Select2

javascript - Jasmine:用事件测试可观察量

angularjs - 由于 TypeScript 1.5 包含 ES6 模块,那么还需要 ES6 模块加载器吗?

javascript - x = {} 创建自发对象

javascript - es6 { [a] : b } destructuring mean? 是什么

unit-testing - Angular NgModel双向绑定(bind)单元测试

angular - 在 Angular 中导入和使用 lodash 的正确方法