Angular模板驱动表单中的自定义验证无法工作
创始人
2024-10-28 13:31:59
0
  1. 在组件中定义一个自定义验证器:
import { Directive } from '@angular/core';
import { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';

@Directive({
  selector: '[customValidator]',
  providers: [{
      provide: NG_VALIDATORS,
      useExisting: CustomValidatorDirective,
      multi: true
  }]
})
export class CustomValidatorDirective implements Validator {

  validate(control: AbstractControl): { [key: string]: any } | null {
    // 自定义验证逻辑
    if (control.value && control.value.length < 5) {
      return { 'customValidator': 'Validation failed' };
    }
    return null;
  }
}
  1. 在组件模板中使用自定义验证器:
Custom validation error: {{ myFieldControl.errors.customValidator }}

这里我们通过在 input 标签上添加 customValidator 指令来启用自定义验证器,然后使用 ngIf 指令来判断是否有错误并显示错误消息。注意在上面的代码中,我们使用了模板引用变量 #myFieldControl 来访问当前控件的状态。

  1. 在组件中通过 @ViewChild 装饰器来获取表单控件:
import { Component, ViewChild } from '@angular/core';
import { NgForm } from '@angular/forms';

@Component({
  selector: 'my-component',
  templateUrl: './my-component.component.html'
})
export class MyComponent {
  @ViewChild('myForm')
  myForm: NgForm;

  onSubmit() {
    console.log(this.myForm.value);
  }
}

在上例中,我们使用 @ViewChild

相关内容

热门资讯

值得注意的是!微乐小程序免费黑... 值得注意的是!微乐小程序免费黑科技,微乐挖坑内购破解(透视)真是存在有辅助教程(哔哩哔哩)1、操作简...
透视窍门!wepoker手机版... 透视窍门!wepoker手机版辅助(WePoKer内购)果然是真的有辅助攻略(哔哩哔哩)1、很好的工...
透视软件!微乐小程序黑科技,微... 透视软件!微乐小程序黑科技,微信小程序游戏破解器(透视)切实真的是有辅助教程(哔哩哔哩)1、下载好正...
透视总结!hhpoker德州有... 透视总结!hhpoker德州有挂吗(AApoker ai插件)一贯真的有辅助脚本(哔哩哔哩)hhpo...
此事引发网友热议!微乐小程序黑... 此事引发网友热议!微乐小程序黑科技免费,微信小程序游戏破解微乐辅助(透视)都是是真的辅助教程(哔哩哔...
透视积累!哈糖大菠萝能开挂吗(... 透视积累!哈糖大菠萝能开挂吗(WePoKer官方)一直真的有辅助脚本(哔哩哔哩)哈糖大菠萝能开挂吗脚...
做出回应!微乐小程序免费黑科技... 做出回应!微乐小程序免费黑科技,微乐自建房免费黑科技下载(透视)其实是有辅助插件(哔哩哔哩)1、进入...
事发当天!微乐小程序免费黑科技... 事发当天!微乐小程序免费黑科技,微乐辅助靠谱麻(透视)总是存在有辅助器(哔哩哔哩)脚本下载中分为三种...
透视积累!wepokerplu... 透视积累!wepokerplus辅助(WePoKer国外版)果然是真的有辅助脚本(哔哩哔哩)透视积累...
透视了解!微乐小程序黑科技免费... 透视了解!微乐小程序黑科技免费,淘宝的微乐辅助是真的吗(透视)好像存在有辅助脚本(哔哩哔哩)1、上手...