当前位置: 首页 > news >正文

Angular FormControl value属性的一些事

  背景:一个输入校验,允许输入多行,每一行是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之类的,理论上也可行。

http://www.lryc.cn/news/118607.html

相关文章:

  • Nim游戏:取石头
  • springboot国际化
  • 12种不宜使用的Javascript语法
  • vue3+element-plus点击列表中的图片预览时,图片被表格覆盖
  • flutter:二维码生成与读取
  • Camunda 7.x 系列【14】核心概念
  • matplotlib 笔记:hist2d 2D直方图
  • 数据库优化脚本执行报错
  • TopN漏洞--sql注入
  • 【论文阅读】UNICORN:基于运行时来源的高级持续威胁检测器(NDSS-2020)
  • Linux的基本介绍和常用命令
  • Flutter 中
  • 可视化高级绘图技巧100篇-总论
  • Android AOSP源码编译——AOSP下载(一)
  • Qt 文件对话框使用 Deepin风格
  • .net core 配置swagger
  • leetcode707. 设计链表(单链表+虚拟头指针+双指针遍历)
  • 电脑麦克风没声音?
  • React Native元素旋转一定的角度
  • LeetCode 1749. 任意子数组和的绝对值的最大值
  • 初学HTML:在线简易画板设计。
  • IDEA项目实践——Spring框架简介,以及IOC注解
  • Scala(第一章Scala入门)
  • Linux tcpdump 命令详解
  • 试卷擦除答案的工具,几个步骤轻松搞定
  • vue3部署宝塔后请求接口404以及刷新页面404的问题解决方案
  • java.sql.Date java.util.Date
  • 斗象科技-2023攻防演练必修高危漏洞集合百度网盘下载(2版本)
  • 分布式数据库视角下的存储过程
  • 深度学习常用的激活函数