首页 > 其他分享 >angular使用from动态设置验证器(clearValidators、setValidators)

angular使用from动态设置验证器(clearValidators、setValidators)

时间:2023-10-09 09:36:13浏览次数:36  
标签:name required list setValidators clearValidators Validators null angular

原文链接:https://www.longkui.site/program/frontend/angularfrom/4787/

0.背景

调试一个angular的form表单,根据条件动态赋予表单的权限验证。

主要介绍clearValidators和setValidators的用法。

1.代码

初始化代码:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import { Component, OnInit,  } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms';   @Component({   selector: 'list',   templateUrl: './list.component.html',   styleUrls: ['./list.component.less'] }) export class ListComponent implements OnInit {     form: FormGroup;     constructor(     private formFB: FormBuilder,   ) { }      ngOnInit() {     //初始化form     this.form = this.formFB.group({       id: [null, [Validators.required]],  //id, 不能为空       name: [null, [Validators.required]], // 姓名       code: [null, [Validators.required]], // code       num: [null, null], // num,可以为空     })   } }

上面的代码用于初始化form表单。

然后,新增一个方法,用于动态配置验证器

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 import { Component, OnInit,  } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms';   @Component({   selector: 'list',   templateUrl: './list.component.html',   styleUrls: ['./list.component.less'] }) export class ListComponent implements OnInit {     formNew: FormGroup;     constructor(     private formFB: FormBuilder,   ) { }      ngOnInit() {     //初始化form     this.formNew = this.formFB.group({       id: [null, [Validators.required]],  //id, 不能为空       name: [null, [Validators.required]], // 姓名       code: [null, [Validators.required]], // code       num: [null, null], // num,可以为空     })      }   flag=false   check(){     if(this.flag){     this.formNew.get('name').setValidators([Validators.required]); //设置name字段为必须验证       }else{         this.formNew.get('name').clearValidators()  //清除name字段验证     }    }

通过setValidators 和clearValidators 可以动态设置验证和清除验证。

 

标签:name,required,list,setValidators,clearValidators,Validators,null,angular
From: https://www.cnblogs.com/longkui-site/p/17750720.html

相关文章

  • An unhandled exception occurred: Could not find the implementation for builder @
    原文链接:https://www.longkui.site/error/angular-cli/4795/调试一个新的angula项目时,报上面的错误。断定基本是版本不匹配导致的。看了看网上的一些信息说是升级一下angular-cli的版本就行了。但是升级后也不好用,后来发现,不是要升级,而是要根据packa.json里面的信息安装指定......
  • 初始化 Angular 懒加载模块:使用MODULE_INITIALIZER的高级技巧
    Angular是一个强大的前端开发框架,它提供了各种机制来优化应用程序的性能和可维护性。在本文中,我们将深入探讨Angular中的MODULE_INITIALIZER,这是一个用于初始化懒加载模块的强大工具。我们将详细介绍MODULE_INITIALIZER的用法以及它在Angular中的作用。什么是懒加载模块?懒加载模......
  • Angular 里的 Module 增强
    Angular模块增强:扩展你的数据模型Angular是一个强大的前端框架,但在某些情况下,我们可能需要对其内置模型进行一些自定义。这时,Angular的模块增强(ModuleAugmentation)就派上了用场。在本文中,我们将深入研究Angular模块增强的细节,以及如何利用它来增强数据模型。什么是模块增......
  • Commands and Queries 在 Angular 应用开发中的使用场合
    CommandsandQueries模式:优化前端状态管理的新范式在现代前端开发中,管理应用程序的状态是一项至关重要的任务。在大多数应用程序中,前端状态来自于后端系统的数据,同时还需要执行各种与后端相关的操作。传统的状态管理方法如Redux虽然强大,但对于处理来自API的状态数据需要大量的......
  • 如何使用 Angular augmentation 技术增强一个 enum 类型
    增强TypeScript和Angular中的Enum类型在TypeScript和Angular应用中,枚举类型(Enum)是一种非常有用的工具,用于定义一组命名的常量值。然而,有时我们需要在现有的枚举类型上进行扩展或增强。这正是Augmentation(增强)技术的用武之地。在本文中,我们将详细介绍如何使用增强技术......
  • 什么是 Angular 的 Active Support 版本和 Long Term Support 版本
    AngularActiveSupport版本和LongTermSupport版本是Angular框架的两个关键概念,它们在Angular的版本管理和维护策略中起着重要的作用。本文将详细介绍这两种版本,并提供示例以更好地理解它们。1.Angular版本概览在深入讨论ActiveSupport版本和LongTermSupport版本之前,让......
  • 什么是 Angular 应用服务器端的预渲染技术 - prerendering
    Angular服务器端预渲染(ServerPrerendering):构建更快速、更友好的Web应用Angular是一种强大的前端框架,用于构建现代Web应用程序。然而,随着应用规模的增长,性能问题也可能随之而来。为了提高Angular应用的性能和用户体验,开发人员可以采用各种技术和方法。其中之一就是服务器端预渲......
  • Angular 应用里环境变量 SERVER_REQUEST_ORIGIN 的含义
    SERVER_REQUEST_ORIGIN是一个在Angular应用中用于管理服务器请求来源的环境变量。在本文中,我将详细介绍这个环境变量的含义、作用以及如何在Angular应用中使用它。首先,让我们理解一下这个环境变量的背景和重要性。1.Angular应用和环境变量Angular是一个流行的前端框架,用......
  • 什么是 Angular 14 的 strict typing of Angular Reactive Forms
    Angular14引入的"stricttypingofAngularReactiveForms"是一项强大的功能,它进一步提高了Angular应用程序的类型安全性和可维护性,特别是在处理表单时。这个功能使开发人员能够更精确地定义表单控件和表单模型的类型,从而减少了潜在的运行时错误,并提供了更好的代码提示和文......
  • Angular inlineCriticalCss 和内部函数 walkStyleRules 介绍
    有一个客户启用了AngularServerSideRendering,并且启用了inlineCriticalCss,后来发现在Dynatrace的hotspot里的vendor.js文件有个名叫walkStyleRules的函数,耗时比较多。如下图所示:Angular服务器端渲染(ServerSideRendering)Angular的服务器端渲染是一种技术,允许在......