Я хочу отформатировать введенный номер внутри текстового поля с разделителем символов в AngularJs.Пользовательский разделитель символов с ngModel не работает должным образом
Я создал директиву для форматирования. Директива генерирует правильный вывод, но не может правильно обновить ngModel
.
<input type="text" data-ng-model="aadhaar" dashsep="'-'">
.directive('dashsep', function($timeout) {
'use strict';
return {
restrict: 'A',
scope: {
dashsep: '=',
ngModel: '=ngModel'
},
require: '?ngModel',
link: function(scope, element, attr) {
element.bind("keyup", function (event) {
var formattedAdh = "";
//console.log(element.val());
var test = element.val().toString();
for(var i=0;i<=test.length-1;i++){
//console.log(test[i]);
if(i%4 === 0 && i>0){
formattedAdh+= scope.dashsep;
}
formattedAdh += test[i];
}
// Following script is not updateing the ngModel/textbox with the formatted value properly //
/*
//element.val(scope.$eval(formattedAdh));
// OR
//scope.ngModel = formattedAdh;
*/
// Following output is showing proper value IF ABOVE SCRIPT IS COMMENTED //
console.clear();
console.log(formattedAdh);
});
}
};
});
Полный скрипт предоставляется в этом Plunker.