在运行时更改一些转换

时间:2018-02-07 14:08:53

标签: javascript html angularjs angular-translate ngx-translate

我有一个AngularJS应用程序,它有3种语言版本,它使用.json文件加载所有语言键值对。

但是我想在运行时动态更改一些键值对。

因此,例如我默认将“ORDER.HEADING”设为“标题”。如果用户做了特定的事情,它应该是“不同的标题”。

我该怎么做?我无法访问控制器中的translateProvider服务,$ translate服务似乎没有可以更新键值对的方法......

1 个答案:

答案 0 :(得分:0)

不幸的是,您无法在运行时更新json文件及其键/值paris。 我建议你做以下事情:

在模板中调用一个函数来检索您的密钥:

<h1>{{ $ctrl.getI18nHeadingKey() | translate }}</h1>

在你的控制器内:

this.someCondition = false;

getI18nHeadingKey() {
  return this.someCondition ? 'YOUR_TRANSLATION_KEY_IF_IT_IS_TRUE' : 'YOUR_TRANSLATION_KEY_IF_IT_IS_FALSE';
}

确保在json文件中添加和翻译两个键,就像使用所有其他翻译一样。 如果您当然有多个条件,则可以扩展给定示例。只需在模板中为给定条件返回所需的翻译密钥。

相关问题