【问题标题】:Angular Translate for data coming from REST来自 REST 的数据的角度翻译
【发布时间】:2017-01-29 15:58:35
【问题描述】:

我必须翻译来自 REST 服务的数据。数据在数据库中,客户想要这个。

在前端我有这个:

控制器:

CreateListService.getCharacteristic().then(function(response){
     vm.createListData = response.data;
});

查看:

<select 
    name="" 
    id="territory"
    class="form-control"
    data-ng-options="item.labelEn for item in vm.createListData.territory track by vm.createListData.territory" 
    ng-model="territory">       
</select>

JSON:

{  
   "confidentiality":[  
      {  
         "id":200,
         "labelFr":"Publique",
         "labelEn":"Public"
      },
      {  
         "id":201,
         "labelFr":"Restreinte",
         "labelEn":"Restricted"
      }
   ],
   "issuer":[  
      {  
         "id":600,
         "labelFr":"Federal Register - OFAC",
         "labelEn":"Federal Register - OFAC"
      },
      {  
         "id":601,
         "labelFr":"Ofac",
         "labelEn":"Internet Ofac"
      }
   ],
   "scope":[  
      {  
         "id":700,
         "labelFr":"Locale",
         "labelEn":"Local"
      },
      {  
         "id":701,
         "labelFr":"Groupe",
         "labelEn":"Group"
      }
   ]
}

是: 角 1.4.9, 角度翻译:2.11.1

我的问题是当用户更改语言时如何更改视图中的值(基于 rest 键:labelFr 和 labelEn)?

我尝试这样认为: item.{{labelLang}} for item in vm.createListData.scope track by vm.createListData.scope

在控制器中: $rootScope.labelLang = "标签" + capitalizeFirstLetter($scope.selectedLang); 但未更新中的值。

感谢您提供所有信息!

【问题讨论】:

    标签: angularjs angular-translate


    【解决方案1】:

    当您已经获得翻译后的标签时,您只需将其输出到视图中。 您在data-ng-options 中使用了错误的语法。 试试这个

    item[labelLang] for item in vm.createListData.scope track by vm.createListData.scope
    

    【讨论】:

    • 是的,就是这样!谢谢。
    【解决方案2】:

    【讨论】:

    • 这个我用过,但我找不到适合我情况的例子。他们在 Front 中使用静态数据,例如:i18n/view_name/en.json 和 i18n/view_name/fr.json
    猜你喜欢
    • 1970-01-01
    • 2021-02-08
    • 2015-01-31
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多