Angular响应式表单自定义验证:在第一次更改时不起作用
创始人
2024-10-30 08:30:17
0

在Angular中,我们可以使用Reactive Forms来创建动态表单,并为其提供自定义验证。然而,有时在第一次更改验证以后,验证器可能不会更新。这可能是因为表单控件的值仍然保持不变的缘故。

要解决这个问题,我们需要使用值更改的Observable,并手动调用验证函数。以下是一个解决方案的代码示例:

import { Component } from '@angular/core';
import { FormControl, FormGroup, Validators } from '@angular/forms';

@Component({
  selector: 'app-custom-validation',
  template: `
    
Password is required
Password must be at least 8 characters long
Password must contain at least one number
`, }) export class CustomValidationComponent { form = new FormGroup({ password: new FormControl('', [ Validators.required, Validators.minLength(8), Validators.pattern(/\d/), ]), }); constructor() { // subscribe to value changes and manually call validation function this.form.get('password').valueChanges.subscribe(() => { this.form.get('password').updateValueAndValidity(); }); } }

在代码中,我们订阅了密码控件的值更改Observable,并在每次更改时手动调用了控件的updateValueAndValidity方法。这将强制表单重新计算验证器并更新表单状态。现在,第一次更改验证器后,表单将更新状态并按预期工作。

相关内容

热门资讯

透视解迷"wpk透视... 透视解迷"wpk透视是真的假的"一直有辅助软件(哔哩哔哩)1)wpk透视是真的假的有没有挂:进一步探...
透视普及"wpk有辅... 透视普及"wpk有辅助器吗"切实存在有辅助插件(哔哩哔哩)1.wpk有辅助器吗 选牌创建新账号,点击...
透视解迷"wejok... 透视解迷"wejoker私人辅助软件"原来是有辅助技巧(哔哩哔哩)该软件可以轻松地帮助玩家将wejo...
透视辅助"poker... 透视辅助"pokerworld辅助器"总是是有辅助软件(哔哩哔哩)1、pokerworld辅助器破解...
透视详情"wepok... 透视详情"wepoker怎么设置透视"真是是真的辅助教程(哔哩哔哩)1、首先打开wepoker怎么设...
透视必备"wepok... 透视必备"wepoker破解版内购"一直存在有辅助插件(哔哩哔哩)1、wepoker破解版内购公共底...
透视关于"wepok... 透视关于"wepoker私人局辅助挂"切实是真的辅助神器(哔哩哔哩)一、wepoker私人局辅助挂游...
透视关于"wepok... 透视关于"wepoker透视器免费"总是存在有辅助工具(哔哩哔哩)1、透视关于"wepoker透视器...
透视解谜"wepok... 透视解谜"wepoker挂"总是是有辅助脚本(哔哩哔哩)在进入wepoker挂软件靠谱后,参与本局比...
透视透视"wepok... 透视透视"wepoker手机版辅助"一直有辅助教程(哔哩哔哩)1、全新机制【wepoker手机版辅助...