我想markAsDirty
标记FormGroup
中的所有控件。
接受的答案对于平面形式结构是正确的,但并不完全回答原始问题。网页可能需要嵌套的表单组和表单数组,我们必须考虑到这一点才能创建一个健壮的解决方案。
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();
}
});
}
值得一提的是,还有另一种方法可以做到这一点,而不必使用对象。键(…)魔术:
for (const field in this.form.controls) { // 'field' is a string
const control = this.form.get(field); // 'control' is a FormControl
}
发现对象。按键
可以处理此问题。。
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 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。 迭代器模式属于行为型模式。 介绍 意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。 主要解决:不同的方式来遍历整个整合对象。