将验证规则添加到表单的角度方式是什么,不属于单个输入字段,但又属于多个字段值?
E.g:
如果可以使用ng-messages显示错误,那就太好了。我使用的是角1.3.10。
答案 0 :(得分:1)
没有内置功能,但只需要很少的努力。
ng-messages
不依赖于任何具体内容。它只需要一个对象,其密钥可以由ng-message
引用。最简单的解决方案是挂钩submit
事件(无论如何你可能会做)并运行其他验证。
<form ng-submit="post()" name="myForm">
<input type="checkbox" name="one" ng-model="one" />
<input type="checkbox" name="two" ng-model="two" />
<input type="submit" />
<div ng-messages="formErrors">
<p ng-message="tooMany">Please, check one checkbox only</p>
<p ng-message="required">Please, check a checkbox</p>
</div>
</form>
在提交时调用函数post()
,它会向对象formErrors
添加任何错误:
$scope.post = function() {
...
var hasErrors = false;
$scope.formErrors = {
};
if ($scope.one && $scope.two) {
$scope.formErrors.tooMany = hasErrors = true;
}
if (!$scope.one && !$scope.two) {
$scope.formErrors.required hasErrors = true;
}
if (hasErrors) {
return;
}
}