当前位置: 首页 > 知识库问答 >
问题:

Angular 2:迭代反应式表单控件

宰坚
2023-03-14

我想markAsDirty标记FormGroup中的所有控件。

共有3个答案

南宫龙野
2023-03-14

接受的答案对于平面形式结构是正确的,但并不完全回答原始问题。网页可能需要嵌套的表单组和表单数组,我们必须考虑到这一点才能创建一个健壮的解决方案。

public markControlsDirty(group: FormGroup | FormArray): void {
    Object.keys(group.controls).forEach((key: string) => {
        const abstractControl = group.controls[key];

        if (abstractControl instanceof FormGroup || abstractControl instanceof FormArray) {
            this.markControlsDirty(abstractControl);
        } else {
            abstractControl.markAsDirty();
        }
    });
}
郎鸿
2023-03-14

值得一提的是,还有另一种方法可以做到这一点,而不必使用对象。键(…)魔术:

for (const field in this.form.controls) { // 'field' is a string

  const control = this.form.get(field); // 'control' is a FormControl  

}
盖锐
2023-03-14

发现对象。按键可以处理此问题。。

    Object.keys(this.form.controls).forEach(key => {
      this.form.get(key).markAsDirty();
    });

对于Angular 8,使用以下公式(基于米开朗基罗的答案):

    Object.keys(this.form.controls).forEach(key => {
      this.form.controls[key].markAsDirty();
    });
 类似资料:
  • 问题 你想反方向迭代一个序列 解决方案 使用内置的 reversed() 函数,比如: >>> a = [1, 2, 3, 4] >>> for x in reversed(a): ... print(x) ... 4 3 2 1 反向迭代仅仅当对象的大小可预先确定或者对象实现了 __reversed__() 的特殊方法时才能生效。 如果两者都不符合,那你必须先将对象转换为一个列表才行,比

  • 对于文本类型的输入很容易,使用onChange()我更新状态,调用setState(),并通过其value属性显示输入上的状态。然而,对于复选框,甚至更多的文件,我完全迷路了。 这将是: 处理程序 事件对象的属性 属性。。。输入 输入示例 onChange()

  • 本文向大家介绍最棒的Angular2表格控件,包括了最棒的Angular2表格控件的使用技巧和注意事项,需要的朋友参考一下 现在市面上有大量的JavaScript数据表格控件,包括开源的第三方的和自产自销的。可以说Wijmo的Flexgrid是目前适应Angular 2的最好的表格控件。  Angular 2数据表格基本要求: 更小、更快、更熟悉。   为了使用Angular 2表格,首先你需要了

  • 我目前正在学习数据结构考试,遇到了一个关于迭代的问题。 在单链表上实现双向迭代器是可能的吗?如果是的话,如何实施呢? 我有一个想法,首先向前遍历链表,并存储一个临时链表,该临时链表保存反向的节点。但是遍历这个临时列表将导致一个只允许向后遍历的迭代器。

  • 本文向大家介绍Lua 迭代表,包括了Lua 迭代表的使用技巧和注意事项,需要的朋友参考一下 示例 Lua标准库提供pairs了对表的键和值进行迭代的功能。使用进行迭代时pairs,即使表的键是numeric,也没有指定的遍历顺序。 对于使用数字键的表,Lua提供了一个ipairs功能。该ipairs函数将始终从table[1],table[2]等等进行迭代,直到nil找到第一个值。 请注意,ipa

  • 主要内容:介绍,实现,Iterator.java,Container.java,NameRepository.java,IteratorPatternDemo.java迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。 迭代器模式属于行为型模式。 介绍 意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。 主要解决:不同的方式来遍历整个整合对象。