angularjs - कोणीय अनुवाद में चुनिंदा बॉक्स विकल्प के अंदर एनजी-अनुवाद कैसे करें
ng-options angular-translate (2)
मैं चुनिंदा बॉक्स के अंदर अनुवाद के विकल्पों के एनजी-ट्रांसलेशन कैसे लागू कर सकता हूं।
उदाहरण के लिए:
टेम्पलेट:
<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"
तरह फिल्टर जोड़ने की कोशिश की 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;
}
}])
लेकिन मुझे निम्नलिखित त्रुटि मिली
Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
यह एक साधारण काम की तरह लगता है, लेकिन यह मेरे दिन का आधा हिस्सा ले चुका है, मैं क्या गलत कर रहा हूं :(
Md-select का उपयोग करके एक और सरल विधि, यहाँ प्लेसहोल्डर का भी उपयोग किया जाता है
JSON: "placeholder":{ "gender": "Gender" }, "gender": { "TXT_MALE": "Male", "TXT_FEMALE": "Female" }
HTML कोड:
<md-select ng-model="gender" placeholder="{{'placeholder.gender' | translate}}" ng-required="true" style="width: 160px;" >
<md-option ng-value="gender .code" ng-repeat="gender in genders" translate="gender.{{gender.name}}"></md-option>
</md-select>
आपको फ़िल्टर को genders
पर लागू करना होगा।
<select ng-model="me.gender" ng-options="gender.name | translate for gender in genders"></select>