我有一个称为验证指令valid-number
,用于使用 $setValidity 设置表单的有效性 - 这对于我在输入框中键入的任何文本值都适用,该指令作为属性应用。
HTML是
<form name="numberForm">
<input name="amount" type="text" ng-model="amount" required valid-number /></form>
指令如下
angular.module('test',[]).directive('validNumber',function(){
return{
require: "ngModel",
link: function(scope, elm, attrs, ctrl){
var regex=/\d/;
ctrl.$parsers.unshift(function(viewValue){
var floatValue = parseFloat(viewValue);
if(regex.test(viewValue)){
ctrl.$setValidity('validNumber',true);
}
else{
ctrl.$setValidity('validNumber',false);
}
return viewValue;
});
}
};
});
但是,如果第一次加载页面时输入框初始化的值无效,我也希望触发验证并将 css 设置为无效的 clsss,例如,如果我设置$scope.amount = 'not a number'
了我希望输入框有该指令适用于它,但没有喜悦。为了not a number
突出显示为无效,我必须更改输入的内容,这会触发指令。
如何确保该指令适用于<input>
初始化的任何内容?
完整的代码示例在这里;