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

相关内容

热门资讯

黑科技辅助!玄龙透视辅助&qu... 黑科技辅助!玄龙透视辅助"有挂辅助app"一贯真的是有挂(哔哩哔哩)玄龙透视辅助辅助器是一种具有地方...
不少玩家反映!微乐江西小程序辅... 不少玩家反映!微乐江西小程序辅助器"详细辅助工具"果然真的是有挂(哔哩哔哩)微乐江西小程序辅助器破解...
透视模拟器!海贝之城辅助软甲下... 透视模拟器!海贝之城辅助软甲下载"详情辅助工具"确实存在有挂(哔哩哔哩)1、玩家可以在海贝之城辅助软...
透视工具!微信小程序旺旺福建辅... 透视工具!微信小程序旺旺福建辅助"专业辅助攻略"真是真的有挂(哔哩哔哩)1、该软件可以轻松地帮助玩家...
规律辅助挂!科乐填大坑辅助器免... 规律辅助挂!科乐填大坑辅助器免费下载"专业辅助软件"一贯是有挂(哔哩哔哩)1、很好的工具软件,可以解...
昨日!微乐卡五星有挂吗&quo... 昨日!微乐卡五星有挂吗"开挂辅助脚本"本来确实有挂(哔哩哔哩)1、微乐卡五星有挂吗免费脚本咨询教程、...
于此同时!遇悦游戏辅助&quo... 于此同时!遇悦游戏辅助"解迷辅助脚本"一直确实有挂(哔哩哔哩)遇悦游戏辅助是不是有人用挂微扑克wpk...
今天上午!卡五星辅助器&quo... 今天上午!卡五星辅助器"解迷辅助神器"竟然是有挂(哔哩哔哩)1、卡五星辅助器破解器简单,卡五星辅助器...
透视科技!赣牌圈控制牌型&qu... 您好,赣牌圈控制牌型这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275054】很多玩家...
这一现象值得深思!新蛮王辅助器... 这一现象值得深思!新蛮王辅助器"必备辅助插件"果然真的有挂(哔哩哔哩)1、新蛮王辅助器辅助器安装包、...