Rah*_*sad 46 angularjs ng-options angular-translate
如何应用ng-translate翻译选择框内的选项.
例如:
模板:
<select class="form-control" ng-model="me.gender" ng-options="gender.name for gender in genders">
</select>
Run Code Online (Sandbox Code Playgroud)
控制器:
$scope.genders = [{code: "M", name:"TXT_MALE"}, {code: "F", name:"TXT_FEMALE"}]
Run Code Online (Sandbox Code Playgroud)
enUS.json:
{
"TXT_MALE": "Male",
"TXT_FEMALE": "Female",
}
Run Code Online (Sandbox Code Playgroud)
我尝试添加过滤器,ng-options="gender.name for gender in genders | translate"
但显然它是添加过滤器到$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;
}
}])
Run Code Online (Sandbox Code Playgroud)
但我得到了以下错误
Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Run Code Online (Sandbox Code Playgroud)
这似乎是一个简单的任务,但它已经占用了我一天的一半,我做错了什么:(
Seb*_*ian 94
您需要将过滤器应用于数组gender.name而不是genders数组:
<select ng-model="me.gender" ng-options="gender.name | translate for gender in genders"></select>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24337 次 |
| 最近记录: |