javascript - 在 Angular 中, $pending 仅在 $asyncValidators 的表单上设置吗?

标签 javascript angularjs validation

我有一个在提交表单时调用的ng-submit函数。 我想在调用任何挂起的 $asyncValidators 后执行一些操作。

if (myForm.$pending) {
    var pendingWatch = scope.$watch(function() {
         return myForm.$pending; }, function(pending) {
               if (!pending) {
                   pendingWatch();
                   performSubmit();
               }
         });
} else {
    performSubmit();    
}

我遇到的问题是 myForm.$pending 总是返回一个对象。即使值不是 $asyncValidators 而是我添加的自定义 $validators 。并非所有输入都会发生这种情况。

表单怎么可能有甚至不是 $asyncValidators 的待处理验证?这些“待处理”的验证永远不会完成。

最佳答案

不,实际上,根据我的经验,如果您的任何自定义验证器返回“未定义”(即使不存在任何 asyncValidators), $pending 也会在表单上设置

因此,要解决此问题,请确保所有验证器返回 true/false

关于javascript - 在 Angular 中, $pending 仅在 $asyncValidators 的表单上设置吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29927135/

相关文章:

javascript - 在 Javascript 中显示/管理文件/目录列表?

javascript - 如何使用javascript检测仅智能手机和平板电脑的onclick事件?

javascript - 在 React-Native 中使用 Flex-Box 对齐行

javascript - AngularJS 在 Controller 之间共享异步数据

AngularJS 和 Ionic。标题、选项卡 View 中的按钮

javascript - 在js中发出post请求并在新窗口中打开其结果

angularjs - 如何在 AngularJS ui-router 模块中指定默认状态

javascript - 当单个字段在没有无限递归的情况下发出成功事件时,我无法在欧芹中触发验证

asp.net - 从 Javascript 更新 ValidatorCallOut 错误消息

php - 检查 API 中的强制参数