Làm cách nào để áp dụng ng-dịch để dịch các tùy chọn bên trong một hộp chọn.
Ví dụ:Cách dịch ng bên trong tùy chọn hộp chọn trong angularjs
mẫu:
<select class="form-control" ng-model="me.gender" ng-options="gender.name for gender in genders">
</select>
Bộ điều khiển:
$scope.genders = [{code: "M", name:"TXT_MALE"}, {code: "F", name:"TXT_FEMALE"}]
enUS.json:
{
"TXT_MALE": "Male",
"TXT_FEMALE": "Female",
}
Tôi đã cố gắng thêm bộ lọc như ng-options="gender.name for gender in genders | translate"
nhưng rõ ràng nó đã được thêm lọc đến $scope.genders
mảng thay vì yếu tố duy nhất
Tôi cố gắng viết lọc riêng (Tôi mới đến này)
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;
}
}])
Nhưng tôi đã lỗi sau
Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Nó có vẻ như là một nhiệm vụ đơn giản nhưng nó đã mất một nửa thời gian của tôi, tôi đang làm gì sai: (