我从this SO问题中删除了这个指令。
var directive = function() {
return {
require: 'ngModel',
restrict: 'A',
link: function(scope, element, attr, ctrl) {
function inputValue(val) {
if (val) {
var digits = val.replace(/[^0-9]/g, '');
if (digits !== val) {
ctrl.$setViewValue(digits);
ctrl.$render();
}
return parseInt(digits, 10);
}
return undefined;
}
ctrl.$parsers.push(inputValue);
}
};
};
module.exports = directive;
我希望将input
限制为仅接受数字,但现在我的其他验证工具(例如min
和max
)无效。我的input
现在总是处于错误状态。该指令的哪一部分影响angular
中的验证生命周期?