Нет встроенных функций, но это требует небольших усилий.
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;
}
}