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,以及是否在验证器中处理了所有可能的错误。

相关内容

热门资讯

透明新版!陕西挖坑辅助,wep... 您好:这款wepoker透视最简单三个步骤游戏是可以开挂的,确实是有挂的,很多玩家在这款wepoke...
终于清楚!四川熊猫游戏辅助器,... 中至赣州黑科技辅助软件视频是一款专注玩家量身打造的游戏记牌类型软件,在中至赣州黑科技辅助软件视频这款...
一分钟了解!欢乐达人暗堡链接脚... 您好:这款欢乐达人暗堡链接脚本游戏是可以开挂的,确实是有挂的,很多玩家在这款欢乐达人暗堡链接脚本游戏...
透明私人局!途游四川辅助器是真... 透明私人局!途游四川辅助器是真的吗,wepoker免费脚本弱密码(辅助挂)详细开挂辅助神器;无需打开...
透视辅助!牌乐门黑科技,wep... 透视辅助!牌乐门黑科技,wepoker私人局可以透视(辅助挂)详细开挂辅助神器;打开点击测试直接进入...
指导大家!微信开心十三张小程序... 指导大家!微信开心十三张小程序脚本,钱塘十水三挂件(有挂教程辅助挂);无需打开直接搜索打开薇:136...
透视有挂!微信小程序牵手跑得快... 透视有挂!微信小程序牵手跑得快脚本,德普之星辅助器app(辅助挂)详细开挂辅助软件;亲,微信小程序牵...
六分钟了解!三哥玩十三张辅助器... >>您好:三哥玩十三张辅助器确实是有挂的,很多玩家在这款三哥玩十三张辅助器游戏中打牌都会发现很多用户...
透视存在!山西扣点点胜率辅助器... 透视存在!山西扣点点胜率辅助器,hhpoker可以控制吗(辅助挂)详细开挂辅助安装;打开点击测试直接...
传递经验!智星菠萝透视,南昌微... 传递经验!智星菠萝透视,南昌微乐自建房辅助(真实有挂辅助开挂脚本);无需打开直接搜索薇:136704...