Angular 7动态/更新参数的自定义验证
创始人
2024-10-17 01:30:45
0

要在Angular 7中动态/更新参数进行自定义验证,可以使用自定义验证器函数以及FormGroup的setValidators方法。以下是一个示例解决方案:

  1. 创建一个自定义验证器函数,接受参数并返回一个验证器函数。该验证器函数将根据参数进行验证。例如,假设我们要验证一个密码字段的最小长度,可以创建一个自定义验证器函数如下:
function minLengthValidator(minLength: number) {
  return (control: AbstractControl): { [key: string]: any } | null => {
    const value = control.value;
    if (value && value.length < minLength) {
      return { 'minLength': { minLength } };
    }
    return null;
  };
}
  1. 在组件中创建一个FormGroup,并使用Validators.compose方法将自定义验证器函数和其他验证器函数组合起来。例如:
import { Component, OnInit } from '@angular/core';
import { FormGroup, FormBuilder, Validators, AbstractControl } from '@angular/forms';

@Component({
  selector: 'app-my-form',
  templateUrl: './my-form.component.html',
  styleUrls: ['./my-form.component.css']
})
export class MyFormComponent implements OnInit {
  myForm: FormGroup;

  constructor(private fb: FormBuilder) { }

  ngOnInit() {
    this.myForm = this.fb.group({
      password: ['', Validators.compose([Validators.required, minLengthValidator(8)])]
    });
  }

  // 动态更新验证参数
  updateMinLength(minLength: number) {
    const passwordControl = this.myForm.get('password');
    passwordControl.setValidators(Validators.compose([Validators.required, minLengthValidator(minLength)]));
    passwordControl.updateValueAndValidity();
  }
}
  1. 在模板中使用FormControl的valueChanges事件来监听参数的变化,并在变化时调用updateMinLength方法。例如:


在上述示例中,密码字段的最小长度由updateMinLength方法动态更新。每当点击"Update Min Length"按钮时,将调用该方法,并传入新的最小长度作为参数。该方法将使用setValidators方法更新密码字段的验证器,并调用updateValueAndValidity方法来重新验证字段。

这就是一个使用自定义验证器函数和setValidators方法在Angular 7中动态/更新参数进行自定义验证的解决方案。

相关内容

热门资讯

6分钟辅助!三江互娱辅助,其实... 6分钟辅助!三江互娱辅助,其实是有辅助脚本(详细教程)三江互娱辅助脚本下载中分为三种模型:三江互娱辅...
9分钟辅助!福建天天开心万能辅... 9分钟辅助!福建天天开心万能辅助,切实真的有辅助脚本(有挂透明挂)进入游戏-大厅左侧-新手福利-激活...
第九分钟辅助!微信小游戏万能修... 第九分钟辅助!微信小游戏万能修改器,真是有辅助app(揭秘有挂)1.微信小游戏万能修改器 选牌创建新...
三分钟辅助!心悦辅助器,果然存... 三分钟辅助!心悦辅助器,果然存在有辅助app(有挂助手)所有人都在同一条线上,像星星一样排成一排,每...
第2分钟辅助!潮汕来物局有透视... 第2分钟辅助!潮汕来物局有透视软件吗,好像有辅助神器(讲解有挂)在进入潮汕来物局有透视软件吗软件靠谱...
6分钟辅助!新道游科技透视通用... 6分钟辅助!新道游科技透视通用版1,总是真的有辅助神器(有挂秘诀)1、任何新道游科技透视通用版1透视...
十分钟辅助!欢聚水鱼脚本,好像... 十分钟辅助!欢聚水鱼脚本,好像真的是有辅助神器(有挂透明挂)欢聚水鱼脚本脚本下载中分为三种模型:欢聚...
第4分钟辅助!丫丫打锅子辅助,... 第4分钟辅助!丫丫打锅子辅助,确实是真的有辅助技巧(有挂教学)1、进入到丫丫打锅子辅助是否有挂之后,...
第二分钟辅助!哈糖大菠萝可以开... 第二分钟辅助!哈糖大菠萝可以开挂吗,果然存在有辅助工具(有挂秘诀)1、完成哈糖大菠萝可以开挂吗辅助器...
三分钟辅助!丽水都莱辅助,一直... 三分钟辅助!丽水都莱辅助,一直存在有辅助神器(有人有挂)1、超多福利:超高返利,海量正版游戏,丽水都...