Is there a way to not bind value to model , and ONLY bind it to model when value is valid.
Asked
Active
Viewed 194 times
0
-
you could use `$validator` on `ngModel` from directive.. – Pankaj Parkar Nov 16 '15 at 06:39
1 Answers
1
Use $parsers
. The example below restricts input to your model for numbers only. Obviously you can change that to be whatever you require to make your input valid.
angular.module('app').
directive('onlyDigits', function () {
return {
restrict: 'A',
require: '?ngModel',
link: function (scope, element, attrs, modelCtrl) {
modelCtrl.$parsers.push(function (inputValue) {
if (inputValue == undefined) return '';
var transformedInput = inputValue.replace(/[^0-9]/g, '');
if (transformedInput !== inputValue) {
modelCtrl.$setViewValue(transformedInput);
modelCtrl.$render();
}
return transformedInput;
});
}
};
});
<input type="text" name="number" only-digits>

Community
- 1
- 1

Brian McAuliffe
- 2,099
- 1
- 16
- 13