angularjs translate显示所选语言中键的值

时间:2017-01-19 18:43:21

标签: javascript angularjs internationalization angular-ui-router angular-translate

我的i18n翻译文件中有以下数据:

"mylist" : {
    "fruits": [
          {
            "key": "A",
            "value": "Apple"
          },
          {
            "key": "B",
            "value": "Banana"
          }
    ]
}


在我的标记中,我得到这样的结果:

<ui-select ng-model="user.fruits" name="fruits" theme="selectize">
    <ui-select-match>{{$select.selected.value}}</ui-select-match>
    <ui-select-choices repeat="f.key as f in transl.mylist.fruits | filter: $select.search">
        <div ng-bind-html="f.value | highlight: $select.search"></div>
    </ui-select-choices>
</ui-select>


在我的标记中,我这样读了:

<td>{{user.fruits}}</td>


所以我在输出中看到key,因为我已经将密钥存储在ng-model中,因为我有几种语言,所以我想存储相同的密钥,但显示不同每种选定语言的价值观。
现在的问题是:
如何以所选语言显示密钥的值?
这样就显示了value而不是密钥。我怎样才能在翻译文件中查找它?

1 个答案:

答案 0 :(得分:2)

添加一个功能来搜索列表中的选定键

$scope.displaySelectedValue = function(option) {
 for(var i=0; i <transl.mylist.fruits.length; i++) {
  if(mylist.fruits[i].key === option)
   return mylist.fruits[i].value;
 }
}

调用该函数传递选定的水果值

<td>{{displaySelectedValue(user.fruits)}}</td>