Angular无法进入自定义表单验证
创始人
2024-10-30 01:31:32
0

要使 Angular 进入自定义表单验证,需要确保以下几点:

  1. 在组件中,要将表单控件和自定义验证器绑定。

例如,我们可以在组件中定义一个自定义验证器:

import { AbstractControl, ValidatorFn } from '@angular/forms';

export function forbiddenNameValidator(forbiddenName: RegExp): ValidatorFn {
  return (control: AbstractControl): {[key: string]: any} | null => {
    const forbidden = forbiddenName.test(control.value);
    return forbidden ? {'forbiddenName': {value: control.value}} : null;
  };
}
  1. 在模板中,要使用指令将表单控件和自定义验证器绑定。

例如,我们可以在模板中使用 ngModel 指令:


Name is required.
Name must be at least 4 characters long.
Name cannot be more than 25 characters long.
Name can only contain letters and spaces.
Name cannot be Bob.
  1. 在自定义指令中,要使用 NG_VALIDATORS 标记自己是一个验证器,并在 validate() 方法中实现自定义验证逻辑。

例如,我们可以定义一个 appForbiddenNameValidator 指令:

import { Directive, Input } from '@angular/core';
import { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';
import { forbiddenNameValidator } from './forbidden-name.validator';

@Directive({
  selector: '[appForbiddenNameValidator]',
  providers: [{ provide: NG_VALIDATORS, useExisting: ForbiddenNameValidatorDirective, multi: true }]
})
export class ForbiddenNameValidatorDirective implements Validator {
  @Input('appForbiddenNameValidator') forbiddenName: string;

  validate(control: AbstractControl): {[key: string]: any} | null {
    return this.forbiddenName ? forbiddenNameValidator(new

相关内容

热门资讯

透视安装!aapoker破解侠... 透视安装!aapoker破解侠是真的吗(透视)雀友软件脚本辅助器(确实有辅助工具)-哔哩哔哩雀友软件...
最新消息!拱趴大菠萝有挂吗(透... 最新消息!拱趴大菠萝有挂吗(透视)福建天天开心技巧(都是有辅助插件)-哔哩哔哩1、完成福建天天开心技...
推出新举措!poker wor... 推出新举措!poker world辅助器(透视)新518互游脚本下载(果然真的有辅助神器)-哔哩哔哩...
透视安卓版!wpk系统是否存在... 透视安卓版!wpk系统是否存在作必弊行为(透视)樱花之盛辅助软件下载(其实真的是有辅助工具)-哔哩哔...
截至发稿!pokemmo脚本手... 截至发稿!pokemmo脚本手机版(透视)广西友乐免费辅助使用视频(一直真的是有辅助工具)-哔哩哔哩...
透视数据!佛手大菠萝辅助(透视... 透视数据!佛手大菠萝辅助(透视)新道游戏辅助器免费版(确实真的有辅助下载)-哔哩哔哩1、在新道游戏辅...
有消息称!wepoker模拟器... 有消息称!wepoker模拟器哪个好用(透视)欢乐情怀辅助器(竟然是有辅助工具)-哔哩哔哩1、上手简...
透视黑科技!aapoker怎么... 透视黑科技!aapoker怎么开辅助器(透视)丽水都莱脚本辅助视频(都是真的是有辅助修改器)-哔哩哔...
反观!德州透视脚本(透视)广西... 反观!德州透视脚本(透视)广西老友辅助是真的吗(原来是有辅助平台)-哔哩哔哩1、起透看视 广西老友辅...
有玩家发现!wepoker透视... 有玩家发现!wepoker透视最简单三个步骤(透视)赣牌圈破解器(原来真的是有辅助app)-哔哩哔哩...