加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何ng-translate里面的选择框选项在angularjs

发布时间:2020-12-17 08:42:00 所属栏目:安全 来源:网络整理
导读:如何在选择框中应用ng-translate翻译选项。 例如: 模板: select class="form-control" ng-model="me.gender" ng-options="gender.name for gender in genders"/select 控制器: $scope.genders = [{code: "M",name:"TXT_MALE"},{code: "F",name:"TXT_FEMAL
如何在选择框中应用ng-translate翻译选项。
例如:

模板:

<select class="form-control" ng-model="me.gender" ng-options="gender.name for gender in genders">
</select>

控制器:

$scope.genders = [{code: "M",name:"TXT_MALE"},{code: "F",name:"TXT_FEMALE"}]

enUS.json:

{
    "TXT_MALE": "Male","TXT_FEMALE": "Female",}

我试过添加过滤器像ng-options =“gender.name性别性别|翻译”
但显然它是添加过滤器到$ scope.genders数组而不是单个元素

我试着写自己的过滤器(我是新的这个)

filter('translateArrayObj',['$translate','_',function($translate,_) {
  return function(arr) {
    var arr2 = [];
    angular.forEach(arr,function (value,key) {
      $translate(value.name).then(function(translation) {
        var obj2 = angular.copy(value);
        obj2.name = translation;
        obj2.code = value.code;
        arr2.push(obj2);
      });
    });
    return arr2;
  }
}])

但我得到以下错误

Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!

这看起来像一个简单的任务,但它已经花了一半的一天,我做错了:(

您需要将过滤器应用于gender.name,而不是genders数组:
<select ng-model="me.gender" ng-options="gender.name | translate for gender in genders"></select>

Here is a demo

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读