如何按照自己的需求来做好ng的表单验证,不多说直接上例子
<h1>自定义表单验证->限定只能输入偶数</h1> <form name="myForm" ng-app="app" ng-controller="test"> <div class="form-group"> <div col-md-4> <label class="control-label">数字:</label> </div> <div col-md-8> <input type="number" name="test" ng-model="data.even" even/> <div ng-show="myForm.test.$error.even">必须是偶数</div> </div> </div> </form>
指令
app.directive("even",function() {
return{
require: 'ngModel',//这个require,我简单的理解为继承的意思把。对应link函数中的第四个参数
link:function(scope, element, attrs, ngModelController) {
ngModelController.$parsers.push(function (viewValue) { //ngModel的双向绑定机制,
//$parser 这个服务是,从ViewModel->ModelView里面来。
if (viewValue % 2 === 0) {
ngModelController.$setValidity("even", true);
} else {
ngModelController.$setValidity("even", false);
}
return viewValue; //处理完之后,要把值返回
});
}
}
});
欢迎大家学习分享,谢谢