在我的控制,我用的输入很多的,以产生一个新的页面(如JSON文件)完成所有填写检查大形式 。我通过一个对象$scope.validation
手动收集输入验证。例如:
if (!$scope.title) {
$scope.validation.title.error = true;
}
然后,当缺少或需要更改某些内容时,我会显示适当的内容。我正在检查它:
if ($scope.validation.title.error) { /* and many more here */
$scope.formValid = false; // form is invalid if at least one error occurred
}
我的一个输入收集链接(URL)到其他页面。
<div ng-repeat="parent in parents">
<input ng-model="parent.url" placeholder="URL" type="text" />
</div>
之后,我需要检查是否存在这些页面。我这样做的方式是:
$http.get(url).then((res)=>{
/* page exists */
$scope.validation.parents.error = false;
}. (err)=>{
/* page doesn't exists */
$scope.validation.parents.error = true;
});
(其实这是在一个循环中发生的事情,所以异步响应更慢)
,因为它需要等待数据的到来,它无法及时检查$scope.validation.parents.error
以及其他验证。
如何异步检查这个值,以便像这样工作的:
if ($scope.validation.title.error || /* and many more here */
$scope.validation.parents.error) {
$scope.formValid = false;
}
这类页面验证的任何替代的想法被接受
异步验证与['$ asyncValidators' API(HTTPS完成。组织/ API/NG /类型/ ngModel.NgModelController#$ asyncValidators)。 – georgeawg
@georgeawg,我对此并不熟悉,因为我正在进行手动验证(检查页面是否存在等)。我不知道这是否会对我有帮助 –