无法更改现有转换对象ngx转换的转换值

时间:2019-01-16 09:48:51

标签: javascript json angular typescript ngx-translate

我正在尝试使用ngx translation更改转换JSON文件中的object属性的值,但该值没有改变,仍然相同。

我希望当我从API接收值以将其动态更新为翻译对象时,我尝试使用setTranslation()方法和set()方法,但是当我尝试在更新后控制台值时,两者均不起作用它正确显示,但在HTML中却没有。

这是我的TS文件:

getDict() {
    this.getDictionary.getDictionary('dictionary').subscribe(
      res => {
        console.log(res)
        console.log('ar');
        this.translateService.use('ar').subscribe(response => {
        let config = [];
        for (let i in res) {
        if(res[i].language == 'ar') {
        config[res[i].key] = res[i].value;
        console.log('this is obj ', config);
        this.translateService.get(config[res[i].key]).subscribe((result: 
        String) => {
          console.log('tr res ', result);
          console.log(this.translateService.get(res[i].key));
          this.translateService.set(config[res[i].key], 
          config[res[i].value], 'ar');
        });
       }
       }
     })
    this.translateService.getTranslation('ar').subscribe(res => {
      console.log('this is the language translation ', res);
    });
   }
 )
}

我的HTML:

<div [translate]="'first_name'" [translateParams]="{value: 'world'}"></div>

我的ar.json文件:

{
  "admin": {
       "first_name": "{{value}}"
           }
}

请注意,我检查了我的应用程序模块,它没有任何问题,它完全可以读取翻译文件,没有任何问题,我也检查了API响应,运行良好且没有错误,而且我可以从中返回数据。

请协助,如果您需要进一步的信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

首先-您在此行有一个错误:

<div [translate]="'first_name'" [translateParams]="{value: 'world'}"></div>

应该是:

<div [translate]="'admin.first_name'" [translateParams]="{value: 'world'}"></div>

但是,老实说,我不理解您的问题。您可以逐步编写所需的内容吗?