I was writing code for implementing validation on a input text box. Which should allow the user to enter only numbers. Almost succeeded in implementing this functionality, but faced one difficulty : I'm not able to delete the last character entered.
app.directive('num', function () {
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, el, attrs, ctrl) {
var lastValidValue;
var NUMBER_REGEXP = /^[0-9]+$/;
ctrl.$parsers.push(function (value) {
console.log('inside parsers')
console.log("Last " + lastValidValue + ", View " + ctrl.$viewValue + ", model " + ctrl.$viewValue);
if (NUMBER_REGEXP.test(value)) {
console.log('true')
lastValidValue = value;
}
else {
ctrl.$viewValue = lastValidValue;
ctrl.$render();
}
console.log("Last " + lastValidValue + ", View " + ctrl.$viewValue + ", model " + ctrl.$viewValue);
return lastValidValue;
});
}
}
})
Please help me to tackle the issue.