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 控件和自定义验证器:

自定义验证错误消息

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

相关内容

热门资讯

aapoker辅助软件!wep... aapoker辅助软件!wepoke最新下载地址,aa扑克平台,扑克教程(竟然是有挂);建议优先通过...
黑科技智能ai!(WepOke... 黑科技智能ai!(WepOke)软件透明挂,(wePOKE)原先真的有挂,透牌教程(有挂透视);支持...
德扑起手牌胜率图!智星德州菠萝... 德扑起手牌胜率图!智星德州菠萝安全吗,好运大菠萝有挂吗,扑克教程(一直是有挂)准备好在智星德州菠萝安...
黑科技肯定!(WPk)透视辅助... 黑科技肯定!(WPk)透视辅助机制,(WPK)其实真的有挂,解说技巧(有挂技巧)科技教程也叫必备教程...
德扑之星辅助器!鱼扑克辅助,g... 德扑之星辅助器!鱼扑克辅助,gg扑克平台发牌机制,2025新版总结(果然是有挂);gg扑克平台发牌机...
黑科技好牌!(WepOke)软... 黑科技好牌!(WepOke)软件透明挂,(WePoke)真是是真的有挂,必备教程(有挂技巧)1、点击...
aapoker挂!德扑人工智能... aapoker挂!德扑人工智能软件,聚星扑克这个平台靠谱吗,扑克教程(一向有挂)是一款可以让一直输的...
黑科技代打!(WepokE)软... 黑科技代打!(WepokE)软件透明挂,(wepoKE)竟然真的是有挂,透视教程(有挂透视),支持语...
红龙扑克机制!wepooke ... 红龙扑克机制!wepooke app系统规律,微扑克专用辅助程序怎么用的啊,黑科技教程(果然真的有挂...
黑科技透明挂!(WEPoke)... 黑科技透明挂!(WEPoke)软件透明挂,(wePoKe)从前是真的有挂,扑克教程(有挂透明);建议...