Angular的异步验证器卡住了
创始人
2024-10-24 11:32:07
0

检查您的异步验证器是否正确,并确保它返回一个Observable对象。

例如,下面的代码演示了如何使用异步验证器来验证输入的值是否唯一:

import { AsyncValidatorFn, AbstractControl, ValidationErrors } from '@angular/forms';
import { Observable, of } from 'rxjs';
import { map, catchError } from 'rxjs/operators';
import { UserService } from 'app/services/user.service';

export function uniqueNameValidator(userService: UserService): AsyncValidatorFn {
  return (control: AbstractControl): Observable => {
    return userService.checkName(control.value).pipe(
      map(res => {
        // 如果名字可用,返回null表示验证成功
        return res ? null : { nameExists: true };
      }),
      catchError(() => {
        // 如果存在错误,返回一个任意的非空值,表示验证失败
        return of({ nameExists: true });
      })
    );
  };
}

在上面的代码中,我们定义了一个名为uniqueNameValidator的异步验证器函数,该函数接收一个UserService对象作为参数。 我们使用管道操作符map和catchError来处理异步验证器的返回值,并返回一个Observable对象。 在map操作符中,我们将异步验证器的结果转换为ValidationErrors对象或null。 如果用户的名字已存在,则我们返回{ nameExists : true }。 如果存在错误,则我们返回一个非空值。

如果您的异步验证器仍然卡住了,请检查您是否正确使用了Observable,以及是否在验证器中处理了所有可能的错误。

相关内容

热门资讯

黑科技工具!Wepoke辅助器... 黑科技工具!Wepoke辅助器(德扑ai软件靠谱吗)起初真的有挂(有挂助手)-哔哩哔哩;人气非常高,...
黑科技私人局!微扑克系统发牌逻... 黑科技私人局!微扑克系统发牌逻辑(德扑ai智能系统)果然是真的有挂(有挂讲解)-哔哩哔哩;是一款可以...
黑科技有挂!wpk德州ai辅助... 黑科技有挂!wpk德州ai辅助神器(德扑AI策略软件)先前真的是有挂(有挂教学)-哔哩哔哩1、德扑A...
黑科技美元局!哈糖大菠萝有辅助... 黑科技美元局!哈糖大菠萝有辅助(aapoker发牌机制)往昔有挂(有挂助手)-哔哩哔哩1、金币登录送...
黑科技ai代打!aapoker... 黑科技ai代打!aapoker辅助工具使用教程(德州ai软件购买)原来真的是有挂(的确有挂)-哔哩哔...
黑科技安装!pokerrrr开... 黑科技安装!pokerrrr开挂(微扑克透牌)原先有挂(发现有挂)-哔哩哔哩1、用户打开应用后不用登...
黑科技攻略!EV扑克辅助软件(... 黑科技攻略!EV扑克辅助软件(德扑ai智能机器人)原先是真的有挂(今日头条)-哔哩哔哩1、这是跨平台...
黑科技免费!云扑克辅助器是真是... 黑科技免费!云扑克辅助器是真是假(微扑克透牌)一贯真的是有挂(有挂存在)-哔哩哔哩是一款可以让一直输...
黑科技ai!云扑克辅助器可以卖... 黑科技ai!云扑克辅助器可以卖(wepoke黑科技)素来真的是有挂(有挂教程)-哔哩哔哩1、在wep...
黑科技能赢!pokerworl... 黑科技能赢!pokerworld下载外挂(德扑AI策略软件)本来真的是有挂(有挂解惑)-哔哩哔哩1、...