首页 > 其他分享 >Angular FormControl value属性的一些事

Angular FormControl value属性的一些事

时间:2023-08-09 16:35:05浏览次数:32  
标签:control FormControl 校验 value 修改 Angular 赋值

  背景:一个输入校验,允许输入多行,每一行是ip或网段。写了个校验,将其按行拆分后单独校验。

1. FormControl无法深复制

  使用JSON.parse(JSON.stringify(control))进行简单深复制报错,因为不是json类型;使用deepClone进行递归深复制,直接栈溢出。考虑到代码的健壮性,已经有单独校验的方法,所以不想再写个新的,也不想再把正则写一遍以至于需要维护两份正则。于是就定义了一个新的变量等于control,然后将新的变量的value赋值为拆分后的值进行校验。那么就造成了浅复制的问题 -- control的value也跟着变了,于是想在结尾再把value还原回去,结果赋值的时候就出现只读无法修改的问题。也就是下边的问题。

2. value是只读属性,无法直接修改

  接1,无法直接修改value,但是可以直接把新变量的value修改后,直接赋值给control,是可以的;另外,如果定义新变量时,不直接使用control赋值,而是new 一个 FormControl并将值置为拆分后的值,理论上也是可以的。此外还有一些比如将属性临时修改为可以读写,使用proxy之类的,理论上也可行。

标签:control,FormControl,校验,value,修改,Angular,赋值
From: https://www.cnblogs.com/ljwsyt/p/17617167.html

相关文章

  • MDC-based Angular Material组件迁移
    1.前言在AngularMaterialv15中,许多组件已基于官方的WebMaterialDesignComponents(MDC)进行了重构。以下导入的组件已被重构:ImportpathSummaryofchanges@angular/material/autocompleteStylechangesonly@angular/material/buttonStylechanges,A......
  • 从Angular 13升级到Angular 15
    1.前言升级应用程序或者框架是软件生命周期中非常重要的一项活动.因为其有风险性,很多人不愿意去做,久而久之随着技术债务的积累变成了一件不能去做的事情.在我的职业生涯中见到过很大这样逐渐失去生命活力的系统,这里就不具体举例了,以免引起不必要的争论,明白的人自然......
  • Android之Spinner用法,key/value模式
    参考:http://www.dedeyun.com/it/m/98498.htmlhttps://blog.csdn.net/myxiaoq/article/details/258696931.key、value类,需要重写toString()方法,返回text就是Spinner要显示的keypackagecom.jay.common;publicclassSpinnerData{privateStringvalue="";private......
  • @RequestMapping(value = "/testxml", produces = {"application/xml; charset=UTF-8"
    这行代码是使用SpringFramework的注解来配置一个用于处理HTTP请求的方法。具体来说,这是一个用于处理GET请求的方法,路径为"/testxml"。让我为你解释其中的含义:@RequestMapping:这是SpringFramework提供的注解,用于将一个方法映射到特定的请求路径。在这个例子中,它将......
  • DataFrame 计数value_counts 后转成df
    importpandasaspd#创建示例DataFramedata={'Category':['A','B','A','C','A','B','C','A','B']}df=pd.DataFrame(data)#使用value_counts()方法对&......
  • 遇到问题---hadoop--Remote App Log Directory does not have same value for the 4 N
    情况因为我们的某台服务器空间不足,暂时清理不出来,所以需要修改一些存放数据的日志目录等。修改完毕之后发现报错错误的配置RemoteAppLogDirectorydoesnothavesamevalueforthe4NodeManagers。原因一般来说不同的主机不要求配置的目录一致,但是yarn.nodemanager.remote......
  • java @Value重配置文件中获取不同的值
    在Java中,使用`@Value`注解可以从配置文件中获取不同的值。`@Value`注解可以用于类的字段或方法的参数上。首先,确保在Spring应用程序中正确配置了配置文件。通常,配置文件的名称为`application.properties`或`application.yaml`,并位于类路径下。接下来,您可以在需要获取配置值的类或方......
  • angular组件的生命周期钩子函数
    ​ 上图[4]展示了angular生命周期钩子函数的执行顺序,在此之前,angular会先执行constructor函数。一、基本说明1.constructor用途:初始化组件,设定属性,注入依赖。说明:构造函数中能读取到本组件内部定义的基本变量和函数的值,但是读不到@ContentChildren、@ContentChild、@V......
  • spring-mvc系列:详解@RequestMapping注解(value、method、params、header等)
    目录一、@RequestMapping注解的功能二、@RequestMapping注解的位置三、@RequestMapping注解的value属性四、@RequestMapping注解的method属性五、@RequestMapping注解的params属性六、@RequestMapping注解的header属性七、SpringMVC支持ant分格的路径八、SpringMVC支持路径中的占......
  • mysql插入报错java.sql.SQLException: Incorrect string value: '\xF0\x9F\x87\xA
    背景环境java8,centos7.9,mysql8.0.34新装的环境,默认给装了mysql8,想着与时俱进用下新版,结果插入就报错java.sql.SQLException:Incorrectstringvalue:'\xF0\x9F\x87\xA8\xF0\x9F...'forcolumn解决方法这个错误通常是由于MySQL数据库中的字符集不支持存储特定的字符或表情符......