Angular的FormArray自定义验证器不触发
创始人
2024-10-24 03:31:19
0

在 Angular 中,可以使用自定义验证器来验证 FormArray。如果自定义验证器没有触发,可能是由于以下原因:

  1. 没有将自定义验证器添加到 FormArray 控件中。
  2. 自定义验证器没有正确地返回验证结果。
  3. 自定义验证器没有正确地绑定到 FormArray 控件。

下面是一个解决方法的代码示例:

首先,创建一个自定义验证器函数,它接受一个 FormArray 控件作为参数,并返回一个验证结果对象:

function customValidator(formArray: FormArray) {
  // 验证逻辑
  if (/* 验证失败 */) {
    return { customError: true };
  }
  return null;
}

然后,在组件中创建一个 FormArray 控件,并将自定义验证器添加到该控件中:

import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, FormArray } from '@angular/forms';

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

  constructor(private fb: FormBuilder) {
    this.myForm = this.fb.group({
      myArray: this.fb.array([], customValidator) // 将自定义验证器添加到 FormArray 控件中
    });
  }

  ngOnInit() {}

  // 添加一个表单控件到 FormArray 中
  addControl() {
    const myArray = this.myForm.get('myArray') as FormArray;
    myArray.push(this.fb.control(''));
  }

  // 获取 FormArray 控件
  get myArray() {
    return this.myForm.get('myArray') as FormArray;
  }
}

最后,在模板中使用 FormArray 控件和自定义验证器:

自定义验证错误消息

在以上代码中,当自定义验证器返回验证结果时,表单控件会自动更新并显示错误消息。

相关内容

热门资讯

今日科普!凑一桌小程序辅助器,... 今日科普!凑一桌小程序辅助器,情怀宜春怎么开挂,了解开挂辅助教程(有挂讲解)1、下载安装好凑一桌小程...
总算了解!广东雀神智能插件安装... 总算了解!广东雀神智能插件安装价格,对战互娱辅助,盘点开挂辅助教程(有挂方法);无需打开直接搜索薇:...
2024教程!微乐小程序多乐辅... 您好:微乐小程序多乐辅助器这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户...
推荐十款!小逸碰胡脚本,欢乐情... 推荐十款!小逸碰胡脚本,欢乐情怀辅助挂,原来有开挂辅助教程(有挂攻略);无需打开直接搜索薇:1367...
盘点一款!智星菠萝透视,新世界... 盘点一款!智星菠萝透视,新世界辅助器免费下载,了解开挂辅助教程(真的有挂)1、下载安装好智星菠萝透视...
推荐一款!天天贵阳辅助插件,约... 推荐一款!天天贵阳辅助插件,约局吧可以看到别人底牌,关于开挂辅助教程(有挂解惑);无需打开直接搜索薇...
一分钟了解!琼崖海南辅助手提,... 一分钟了解!琼崖海南辅助手提,微信微乐辅助免费,分析开挂辅助教程(有挂秘笈);无需打开直接搜索加薇1...
必备科技!蜀山四川辅助器下载渠... 必备科技!蜀山四川辅助器下载渠道有哪些,佛手在线辅助,原来有开挂辅助教程(有挂头条);无需打开直接搜...
记者发布!新悠悠拼十辅助,科乐... 记者发布!新悠悠拼十辅助,科乐天天踢辅助视频,关于开挂辅助教程(有挂讲解)1、下载安装好科乐天天踢辅...
玩家必备教程!微乐江西小程序辅... 玩家必备教程!微乐江西小程序辅助器免费,悟空大厅辅助助手下载安装,了解开挂辅助教程(有挂方略);无需...