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、很好的雀友会广东潮...
正品辅助!微信小程序财神十三章... 正品辅助!微信小程序财神十三章特殊牌,蜀渝牌乐汇挂机软件(推荐一款开挂辅助工具)【无需打开直接搜索加...
分享辅助!皇豪互娱科技,aap... aapoker怎么控制牌开挂教程视频分享装挂详细步骤在当今的网络游戏中,aapoker怎么控制牌作为...
推荐开挂!全游大厅拼十辅助,w... 推荐开挂!全游大厅拼十辅助,wepoker新号好一点吗(我来向大家传授开挂辅助安装);无需打开直接搜...
正版开挂!新九哥辅助,九江讨赏... 正版开挂!新九哥辅助,九江讨赏辅助中至小程序(透视辅助开挂辅助安装)>>您好:软件加13670430...
发现开挂!新超圣正版辅助,aa... >>您好:aapoker安装包怎么使用确实是有挂的,很多玩家在这款aapoker安装包怎么使用游戏中...
通报开挂!随意玩透视辅助软件,... 通报开挂!随意玩透视辅助软件,道游互娱透视辅助截图(最新技巧开挂辅助脚本) >>您好:软件加薇136...
正品开挂!新道游戏辅助器安装包... 您好:这款新道游戏辅助器安装包游戏是可以开挂的,确实是有挂的,很多玩家在这款新道游戏辅助器安装包游戏...
盘点开挂!雀友会广东潮汕麻雀,... 您好:雀友会广东潮汕麻雀这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的...