2014-05-09 4 views
42

में चयन बॉक्स विकल्प के अंदर एनजी-अनुवाद कैसे करें एक चयन बॉक्स के अंदर विकल्पों का अनुवाद करने के लिए मैं एनजी-अनुवाद कैसे लागू करूं?
उदाहरण के लिए:angularjs

टेम्पलेट:

<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 for gender in genders | translate" तरह लेकिन स्पष्ट रूप से इसे जोड़ने थापर फ़िल्टर करेंएक तत्व के बजाय सरणी

मैं खुद फिल्टर (मैं इस के लिए नया हूँ)

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! 

यह एक सरल कार्य है, लेकिन यह की तरह लगता है मेरे दिन का आधा हिस्सा पहले ही ले चुका है, मैं क्या गलत कर रहा हूं :(

उत्तर

86

आपको फ़िल्टर कोपर लागू करने की आवश्यकता हैऔर नहीं करने के लिए genders सरणी:

<select ng-model="me.gender" ng-options="gender.name | translate for gender in genders"></select> 

Here is a demo