有没有办法不将值绑定到模型,只有在值有效时才将它绑定到模型。
答案 0 :(得分:1)
使用$parsers
。以下示例仅限制您的模型输入数字。显然,您可以将其更改为使您的输入有效所需的任何内容。
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>