Angular 4 数组验证

2024-02-24

我需要帮助formArray验证在反应形式。我想验证数组中的每个项目,但我不知道该怎么做。谢谢。

html代码:

    <label for="name">name:</label>
    <input formControlName="name" id="name" type="text">
    <div *ngIf="name.invalid && (name.dirty || name.touched)">
       <div *ngIf="name.errors.required">
         required
       </div>
    </div>

打字稿代码:

 createForm() {
    this.form = this.fb.group({
      person: this.fb.array([this.initItemRows()])
    });
  }

initItemRows() {
    return this.fb.group({
      name: [''],
      info: ['']
    });
  }

  addNewRow() {
    const control = <FormArray>this.form.controls['person'];
    control.push(this.initItemRows());
  }

  deleteRow(index: number) {
    const control = <FormArray>this.form.controls['person'];
    control.removeAt(index);
  }

  get name() { return this.form.get('person.name'); }
  get info() { return this.form.get('person.info'); }

我试过这个:

initItemRows() {
    return this.fb.group({
      name: ['', Validators.required ],
      info: ['', Validators.required ]
    });
  }

没用..


你的吸气剂name and info实际上并不针对特定的表单控件,因为您的person是一个 formArray,例如this.form.get('person.name');您的表单中不存在。您需要做的是对每个表单组使用迭代并使用其控件定位该组,因此您的模板应如下所示:

<div *ngFor="let p of form.controls.person.controls; let i = index" 
             [formGroupName]="i">
  <label for="name">name:</label>
  <input formControlName="name" id="name" type="text">
  <!-- check if the name in this group has the error -->
  <div *ngIf="p.controls.name.dirty">
    <div *ngIf="p.hasError('required', 'name')">Required</div>  
  </div>
</div>

DEMO https://stackblitz.com/edit/angular-mwxnzk?file=app%2Fapp.component.ts


此外,建议您可以稍微缩短代码并删除初始化/将表单组添加到数组时真正不需要的方法,因此在这里我删除了addNewRow, initItemRows当您想要添加新行时可以调用。

this.form = this.fb.group({
  person: this.fb.array([])
});
this.initItemRows();

initItemRows() {
  let ctrl = <FormArray>this.form.controls.person;
  ctrl.push(this.fb.group({
    name: ['', Validators.required],
    info: ['', Validators.required]      
  }))
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 4 数组验证 的相关文章

  • 在哪里可以找到 Java 数组的源代码? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在哪里可以找到java数组的源代码 Example double arr new double 20
  • 如何计算伽罗瓦域上的numpy数组?

    我想在伽罗华域 GF4 上使用 numpy 数组 所以 我将 GF4 类设置为数组元素 它适用于数组 整数计算 但不适用于数组 数组计算 import numpy class GF4 object class for galois fiel
  • 从 C 数组中删除大量元素的最快方法

    我有包含数千个甚至更多元素的动态数组 为了不消耗大量内存 我可以从中删除不需要的元素 即元素已被使用 不再需要它们 所以从一开始我可以通过估计每次删除元素后所需的最大大小来分配较小的内存大小 我用这个方法但是需要很长很长的时间才能完成 有时
  • .push() 将多个对象放入 JavaScript 数组中返回“未定义”

    当我将项目添加到beats数组然后console log用户时 我得到了数组中正确的项目数 但是当我检查 length 时 我总是得到 1 尝试调用索引总是会给我 未定义 如下所示 Tom beats 1 我想我错过了一些明显的东西 但这让
  • 3D 数组到 3D std::vector

    我在代码函数中用 3D std vector 替换了 3D 数组 它进入了无限循环 你能给我一个提示吗 我真的需要使用向量而不是数组 谢谢 我最初的代码是 arr is a 3D array of a sudoku table the 3
  • 是否可以在 Angular Material Tooltip 中包含一个列表?

    基本上我想在我的工具提示中有一个 ul 元素 我正在使用 Angular 5 以及 Angular 5 的兼容材质 帕维尔 阿加科夫 Pavel Agarkov 的评论方向是正确的 为了让事情变得简单 创建一个自定义管道来自动将文本转换为项
  • MVC 模式中的验证层

    验证模型将使用的数据的最佳位置在哪里 例如 考虑登记表 我们有一些来自注册表的数据 那么验证这些数据的最佳位置在哪里 我们应该通过 if 语句或特殊的验证器类来检查每个数据 这意味着大量的编码 所以我想了解在哪里可以做到这一点 在控制器中
  • 禁用 notInArray 验证器 Zend Framework 2

    有没有办法在 Zend Framework 2 中禁用 notInArray Validator 互联网上的所有信息都显示如何在 Zend Framework 1 中禁用 notInArray Validator 例如以这种方式 如果您根本
  • Javascript 在数组索引上传播以将新项目“推送”到嵌套数组

    考虑以下数据 let data foo true bar 1 2 3 foo true bar 8 9 我试图push嵌套的东西bar索引上的数组1使用扩展语法 https developer mozilla org en US docs
  • 使用 Dojo 富文本编辑器提交表单

    有人知道如何提交包含 Dojo 富文本编辑器的表单吗 我尝试将 name 属性添加到用 dojoType dijit Editor 装饰的元素中 但是 我在接收过程中没有看到任何 HTML 我已经检查了文档 但没有看到任何明确的示例 除了将
  • 如何为名称为数组的 jquery 表单验证插件创建规则?

    有谁知道当您有一个数组的名称属性时如何为 jquery 表单验证插件创建规则 eg
  • 只能通过bootstrap将服务注入到服务中吗?

    我正在尝试连接一个使用 Http 服务的基本 Angular2 应用程序 我见过的大多数教程都是通过Component消耗Http服务 这似乎是错误的 除非瘦控制器的基本理念已经改变 但这是一个不同的问题 我想创建一个使用 Angular
  • RxJS 订阅内部订阅,每个级别返回值并存储到各自的变量中

    我知道已经有关于嵌套订阅的帖子 在这里 我们有 5 个级别的订阅操作 每个变量 operationId actionlistId componentId traceId 这里 API 正在调用 其功能如下 Step 1 订单模板 ID 为a
  • “实际或正式的参数列表长度不同”

    当我尝试将某些内容放入 括号中时Friends f new Friends friendsName friendsAge 它出现错误 Friends 类中的构造函数 Friends 不能应用于给定类型 必需 无参数 发现 字符串 整数 原因
  • 角度 2 通道数组到自定义验证器(模板驱动形式)

    我需要将一个对象数组传递给 a2 自定义验证器 然后我想根据该数组中的记录验证模板驱动表单字段的值 但是我无法检索验证器内的对象 我唯一能看到的是它的名称作为字符串 如有任何帮助 我们将不胜感激
  • Angular 2和Jasmine单元测试:无法获取innerHtml

    我正在使用测试组件 WelcomeComponent 的示例之一 import Component OnInit from angular core import UserService from model user service Co
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • Jquery一键提交多个同名表单

    我有动态创建的循环表单 我需要一键提交所有表单 我正在遵循下面的代码 你能建议我怎么做吗 谢谢
  • 发送用户注册密码,django-allauth

    我在 django 应用程序上使用 django alluth 进行身份验证 注册 我需要创建一个自定义注册表单 其中只有一个字段 电子邮件 密码将在服务器上生成 这是我创建的表格 from django import forms from

随机推荐

  • 如何获取带有分隔符的字符串的前五个字符

    由此形成一整串 1 2 3 4 5 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 我怎样才能实现像这样放入数组 我想将它们按行放入数组中 正如您所提到的 您可以将结果作为字符串 并具有预期结果row str
  • 无法在 Databricks 上运行 Pandas 分析

    我正在尝试在 Databricks 环境中的示例数据帧上运行 Pandas 分析 收到与 marplotlib 相关的错误 不确定此问题是否与 Matplotlib 或 pandas profiling 相关 任何帮助将不胜感激 Datab
  • 初始化 MIDIMetaEvent 结构

    我正在努力使用 swift 初始化 MusicPlayer h 中找到的 MIDIMetaEvent 结构 头文件定义结构如下 struct MIDIMetaEvent var metaEventType UInt8 var unused1
  • 将 Gollum wiki 部署到 Heroku

    Gollum 是 一个简单的 由 Git 驱动的 wiki 具有出色的 API 和本地前端 它托管在 GitHub 上 http github com github gollum http github com github gollum
  • 移动浏览器中 Div 绝对定位的问题

    我在以下网站上绝对定位名为 id verticalGenesis 的 div 时遇到很多问题 http genesispetaluma com index html http genesispetaluma com index html在移
  • 清理项目、重建项目、在 Android Studio 中运行项目

    有谁知道或知道 android studio 中这三个功能如何工作的详细答案 我认为 Eclipse 可能还有 IntelliJ 也具有相同或相似的功能 我已经看到并被告知答案 这些答案给出了它们如何工作的简要概述 据我了解 重建还将清理项
  • Printf 函数格式化程序

    有以下简单的C 代码 include
  • 在 MVC 中,您在哪里放置对模型类的引用?

    在询问了不同的人并且没有人提供我所说的 至少有点具体的答案 之后 我一直想知道 问题 在 iPhone 应用程序中 应用程序应该保留对其模型类的引用 使用MVC http developer apple com iphone library
  • 如何根据 Haskell 中的区域设置格式化数字?

    在Python中我可以使用locale format根据区域设置漂亮地打印数字 gt gt gt import locale gt gt gt locale setlocale locale LC ALL en US UTF 8 en US
  • 在 ASP.NET MVC 3 中缓存数据

    我有一个 ASP NET MVC 3 应用程序 它基本上只是一组 Web 服务 这些 Web 服务由一组控制器操作公开 每个控制器操作都会查询我的数据库 因为我的数据很少发生变化 而且陈旧的数据也不用担心 所以我想我应该实现一些缓存来提高性
  • Reactjs 笑话 jQuery 未定义

    我正在使用 jest 来测试我的reactJS 组件 在我的reactJS组件中 我需要使用jquery UI 所以我在组件中添加了以下内容 var jQuery require jquery require jquery ui ui co
  • scala 中的 <:< 运算符

    任何人都可以提供一些详细信息 lt
  • 在 SkiaSharp 中绘制旋转文本

    如何绘制旋转文本SkiaSharp 目前我正在旋转SKCanvas 绘制文本然后将其旋转回来 但我认为可能有一种更有效的方法来做到这一点 canvas RotateDegrees 45 20 20 canvas DrawText Text
  • Onclick 不触发

    我的母版页上有一组按钮 我已附加下面的代码 但没有引发 onclick 事件 我提取了最终页面源代码 但没有出现 onclick 事件 正如你所看到的 我尝试了几种不同的方法来解决这个问题 我正在寻找到服务器的正常回发 但当我单击这些按钮中
  • 使用 JSONpath 从 JSON 文件中提取叶子

    我有来自 REST API 的 JSON 输出 输出如下所示 sprints id 10516 sequence 10516 name SP121 BRK relief state CLOSED linkedPagesCount 0 id
  • Ansible:regex_search 过滤器比较以及如何调试 when 子句

    今天我花了一些时间尝试编写一些 Ansible 脚本 以便仅在相关命令输出中不存在相应行的情况下运行命令 经过一番尝试和错误后 我得到了一些对我有用的东西 但我不清楚为什么我与空字符串的初始比较不起作用 这是一个演示我的问题的剧本 name
  • 计算二进制数字范围内 1 的数量的算法

    所以我刚回来ACM 编程竞赛表现还不错 但有一个问题没有一支球队能解决 问题 从大于 0 的整数 N0 开始 令 N1 为 N0 的二进制表示形式中 1 的数量 因此 如果N0 27 N1 4 对全部i gt 0 令 Ni 为二进制表示中
  • java中的wav幅度(立体声或更多通道)

    大家好 有谁知道如何用 Java 查找 WAV 文件中的幅度吗 如果文件是立体声的 或有更多通道 如何将数据放入数组中 Thanks 处理 WAV 文件头 https ccrma stanford edu courses 422 winte
  • 将应用程序包上传到 Google Play 控制台时出现有关“AD_SERVICES_CONFIG”的错误

    详细的错误消息如下 任何想法 非常感谢 Your app is not allowed to specify AD SERVICES CONFIG property in the manifest 我尝试向清单添加权限 但仍然遇到相同的错误
  • Angular 4 数组验证

    我需要帮助formArray验证在反应形式 我想验证数组中的每个项目 但我不知道该怎么做 谢谢 html代码