异步验证器

异步验证器允许你根据后端验证表单信息(使用$ http)。

当你需要访问由于各种原因而无法在客户端上存储的服务器存储信息(例如 users 表和其他数据库信息)时,需要使用这些验证器。

要使用异步验证器,可以访问 inputng-model 并为 $asyncValidators 属性定义回调函数。

例:

以下示例检查提供的名称是否已存在,如果名称已存在或未提供,则后端将返回拒绝承诺的状态。如果该名称不存在,它将返回已解决的承诺。

ngModel.$asyncValidators.usernameValidate = function (name) {               
     if (name) {
          return AuthenticationService.checkIfNameExists(name); // returns a promise
     } else {
          return $q.reject("This username is already taken!"); // rejected promise
     }
};

现在,每当输入的 ng-model 发生更改时,此函数将运行并返回带有结果的 promise。