Angular 5 FormGroup Validator 期望验证器返回 Promise 或 Observable。
创始人
2024-10-15 21:30:15
0

在Angular 5中,你可以使用异步验证器来期望验证器返回Promise或Observable。下面是一个示例解决方法:

首先,创建一个自定义的异步验证器函数,它会返回一个Promise或Observable。在此示例中,我们将使用一个简单的延迟函数来模拟异步验证:

import { AbstractControl, ValidationErrors } from '@angular/forms';
import { Observable } from 'rxjs/Observable';

export function asyncValidator(control: AbstractControl): Promise | Observable {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      if (control.value === 'test') {
        resolve(null); // 验证通过,返回null
      } else {
        resolve({ asyncValidation: true }); // 验证失败,返回自定义错误对象
      }
    }, 2000); // 模拟2秒的异步验证
  });
}

接下来,在你的组件中,使用FormGroup来创建表单,并将异步验证器应用到相应的表单控件上。在此示例中,我们将异步验证器应用到名为"username"的FormControl上:

import { Component } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { asyncValidator } from './async-validator';

@Component({
  selector: 'app-my-component',
  template: `
    
Invalid username!
` }) export class MyComponent { myForm: FormGroup; constructor(private fb: FormBuilder) { this.myForm = this.fb.group({ username: ['', [Validators.required], [asyncValidator]] // 异步验证器作为第三个参数传递 }); } }

在上面的示例中,我们使用了FormBuilder来创建一个名为"myForm"的FormGroup,并将异步验证器应用到"username"控件上。在模板中,我们使用了*ngIf指令来根据异步验证器返回的错误显示相应的消息。

请注意,异步验证器函数应返回一个Promise或Observable,并在验证通过或失败时解析相应的值。验证通过时,应返回null或undefined。验证失败时,可以返回一个自定义的错误对象,以便在模板中显示相应的错误消息。

希望这可以帮助到你!

相关内容

热门资讯

佛手在线大菠萝为什么都输!hh... 佛手在线大菠萝为什么都输!hhpoker开挂教程(透视)方法-真是辅助真的是有挂1)佛手在线大菠萝为...
透视详情!约局吧如何查看是否有... 透视详情!约局吧如何查看是否有挂(透视)哈糖大菠萝怎么开挂,教程总结(有挂规律)-哔哩哔哩一、约局吧...
约局吧德州透视!wepoker... 约局吧德州透视!wepoker辅助透视软件(透视)教程-一直辅助存在有挂1、下载好wepoker辅助...
透视必备!hhpoker有后台... 透视必备!hhpoker有后台操作吗(透视)红龙poker辅助工具,教程法门(有挂秘笈)-哔哩哔哩1...
wpk模拟器是什么!wepok... wpk模拟器是什么!wepoker-h5下载(透视)脚本-切实有挂存在有挂1、用户打开应用后不用登录...
透视透视!werplan辅助软... 透视透视!werplan辅助软件(透视)wpk透视辅助,教程总结(有挂方法)-哔哩哔哩1、该软件可以...
wpk俱乐部辅助器!epoke... wpk俱乐部辅助器!epoker底牌透视(透视)app-一贯揭幕真的是有挂所有人都在同一条线上,像星...
透视科普!pokemmo手机版... 透视科普!pokemmo手机版脚本(透视)wepoker私人局透视插件,教程指南书(有挂技巧)-哔哩...
智星德州插件怎么下载!hhpo... 智星德州插件怎么下载!hhpoker德州真的假的(透视)app-本来分享是真的挂1、操作简单,无需智...
透视专业!wepokerplu... 透视专业!wepokerplus辅助(透视)wpk透视是真的吗,教程教材(有挂攻略)-哔哩哔哩1、每...