如何在表单数组中添加无效的表单控件而不影响其功能

2024-04-28

我想创建一个动态表单,将表单控件(必需的表单控件)添加到表单数组中。

表单控件无效,因为它需要由用户填写(为空)

但是当我添加表单控件时,出现错误

ExpressionChangedAfterItHasBeenCheckedError:表达式在检查后已更改。以前的值:'ng-valid:true'。当前值:'ng-valid:false'

在控制台中。

add(formControl) {
    (this.formGroup.get('array') asFormArray).push(formControl)
}

您只需要在添加无效的子表单后手动调用更改检测即可。变更检测是自上而下进行的。根据该错误判断,当单击按钮(或您用来添加新表单的任何内容)更改检测周期运行时,它在到达新添加的无效子表单时已经检查了表单有效性。在添加新表单后手动调用它会告诉 Angular 将需要第二个更改检测周期,因为更高层元素中的表达式很可能已更改。

constructor(private readonly cdr: ChangeDetectorRef) {}

add(formControl) {
  (this.formGroup.get('array') asFormArray).push(formControl);
  this.cdr.detectChanges();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在表单数组中添加无效的表单控件而不影响其功能 的相关文章

随机推荐

  • 对 CodePlex 的表达式树序列化库的看法?

    有人尝试过这个代码库并对它有意见吗 http code msdn microsoft com exprserialization http code msdn microsoft com exprserialization 10x 看起来该
  • 无法加载请求的类:会话

    我的配置文件看起来像这样 gt config sess cookie name ci session config sess expiration 7200 config sess expire on close TRUE config s
  • WPF弹出窗口出现在其他桌面窗口之上,如何仅出现在WPF主窗口之上?

    我有一个带有网格的 WPF 主窗口 并且添加了一个 WPF 弹出窗口 以便在单击按钮时询问用户额外信息 但问题是 当其他桌面窗口移到弹出窗口上时 弹出窗口会覆盖其他桌面窗口 如何解决此问题 以便弹出窗口仅位于 WPF 主窗口的最上方 而不是
  • 如何调整 LISTAGG 以支持选择查询中超过 4000 个字符?

    Oracle Database 11g 企业版版本 11 2 0 2 0 64 位生产版 我有一个以下格式的表格 Name Department Johny Dep1 Jacky Dep2 Ramu Dep1 我需要以下格式的输出 Dep1
  • 为什么 Blazor 模板使用工厂来创建 HttpClient 实例

    当处置HttpClient 可能会遇到 套接字耗尽 的情况problem https learn microsoft com en us dotnet architecture microservices implement resilie
  • 是否存在用于编辑 doxygen 评论的“wiki”? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一个相当大的开源 RTS 游戏引擎 Spring http springrts com 我最近
  • 创建 git 分支并将其合并到史诗分支

    我正在开发一个项目 例如 SO bubbleSort 我需要创建一个名为 feature version 1 的史诗分支 因此从这个史诗分支中很少有开发人员进行开发 因此为此 他们需要创建一个将分支与史诗分支分开 我的问题是我们如何合并这些
  • 詹金斯总体/阅读权限

    当在 URL 中打开我的 Jenkins 时 我似乎无法登录 它会抛出消息 用户缺少总体 读取权限 我已经尝试过answer https stackoverflow com questions 6988849 reset jenkins c
  • 具有透明框架和不透明边缘的图例

    设置图例透明度时 plt legend framealpha 0 5 它会影响背景和边缘 如何仅将透明度应用于背景而不应用于边缘 我努力了 plt legend edgecolor 0 0 0 1 facecolor 1 1 1 0 1 我
  • 使用递归获取嵌套对象中的所有父对象

    我有以下对象 const object id 1 name a children id 2 name b children id 3 name c id 4 name d 我需要一个接受对象和最后一个子对象的
  • 将 Fabric env.hosts 字符串作为变量传递在函数中不起作用

    将 Fabric env hosts 字符串作为变量传递在函数中不起作用 demo py usr bin env python from fabric api import env run def deploy hosts command
  • 如何在 Flutter gold test 上检查字体文本

    我正在做一个package https pub dev packages mongol用于垂直蒙古文 我有一个自定义小部件 需要特殊字体才能显示 我正在尝试编写一个测试来显示蒙古文文本已正确呈现 在模拟器上看起来像这样 但黄金文件看起来像这
  • RStudio Shiny renderDataTable 字体大小

    我正在尝试减小 renderDataTable 中的字体大小 但找不到任何控制字体大小的示例 我读到可以通过 jquery 控制它 但我找不到任何例子 任何指导都会非常有帮助 因为我正在使用闪亮的 ioslides 演示文稿 并且我的数据表
  • Spring Security 帐户锁定

    您好 我有一个使用 Spring webflow 和 Spring Security 的 j2ee 应用程序 我想实现帐户锁定 以便在密码失败 3 次后帐户将被锁定 我该如何实现这个 你能用一个认证失败处理程序 http static sp
  • 在列名中使用保留字

    这是一些简单的代码 但我只是不知道为什么我不能使用这个词作为表的实体 CREATE TABLE IF NOT EXISTS users key INT PRIMARY KEY NOT NULL AUTO INCREMENT username
  • Powershell 按多个属性分组

    我试图确定是否有更简单的方法来编写 Powershell 函数 该函数按多个属性对数组进行分组并对组中指定的属性求和 类似于以下内容 Ungrouped data ID ID2 Value A A1 100 A A2 200 A A2 30
  • Android Oreo 上的操作系统阻止了地理围栏转换 PendingIntent

    这只发生在 Android Oreo 上 我正在使用 Play 服务 11 4 2 我正在使用 GeofencingClient 和 addGeofences 方法将地理围栏注册到正在处理地理围栏转换的 IntentService 中 并将
  • 在 Javascript 中获取类的所有实例

    我以为这个问题已经有了答案 但我似乎找不到答案 如何在 Javascript 中的此类的所有实例上运行特定的类方法 这必须在我不知道实例名称的情况下完成 我想我可以在类中使用某种静态变量来存储所有实例 但这在 JS 中似乎不存在 那么如何在
  • 在 Angular dart 上设置全局 Http 请求标头

    如何配置 Http 服务 向调用添加标头 我尝试以下方法 class GlobalHttpHeaders static setup Injector inj HttpDefaultHeaders http inj get HttpDefau
  • 如何在表单数组中添加无效的表单控件而不影响其功能

    我想创建一个动态表单 将表单控件 必需的表单控件 添加到表单数组中 表单控件无效 因为它需要由用户填写 为空 但是当我添加表单控件时 出现错误 ExpressionChangedAfterItHasBeenCheckedError 表达式在