- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在我的 Angular 4 应用程序中,我有一个包含多个控件的表单。
在某些时候我需要强制更新它们的有效性,所以我在做:
this.form.get('control1').updateValueAndValidity();
this.form.get('control2').updateValueAndValidity();
this.form.get('control3').updateValueAndValidity();
// and so on....
然后:
this.form.updateValueAndValidity();
这很好用。
但是我想知道是否有更好的方法来完成同样的事情,只需调用父表单上的一个方法。
根据其documentation , updateValueAndValidity()
方法:
By default, it will also update the value and validity of its ancestors.
但就我而言,我需要更新其后代 的值和有效性。这样我就可以去掉很多行代码。
最佳答案
我有同样的情况要更新 FormGroup |嵌套级别控件的 FormArray
。
检查一下(对我有用):
/**
* Re-calculates the value and validation status of the entire controls tree.
*/
function updateTreeValidity(group: FormGroup | FormArray): void {
Object.keys(group.controls).forEach((key: string) => {
const abstractControl = group.controls[key];
if (abstractControl instanceof FormGroup || abstractControl instanceof FormArray) {
updateTreeValidity(abstractControl);
} else {
abstractControl.updateValueAndValidity();
}
});
}
关于所有子控件的 Angular 形式 updateValueAndValidity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46990726/
如果输入值是整数,我有一个附加小数点的指令。下面是实现。 import { Directive, ElementRef, Input, OnInit, HostListener, forwardRef
These docs说明如下: If emitEvent is true, this change will cause a valueChanges event on the FormControl
在我的 Angular 4 应用程序中,我有一个包含多个控件的表单。 在某些时候我需要强制更新它们的有效性,所以我在做: this.form.get('control1').updateValueAn
我试图根据某些条件在formGroup控件中添加和删除验证器。 当我通过formGroup.updateValueAndValidity()更新验证程序以使其整体不更新时,好像我正在为每个控件(即fo
我正在尝试使用 FormControls 在 Angular2 中进行日期验证。我有一个开始和结束日期。我需要验证开始日期是否在结束日期之前。以下是当控件的值发生变化时我如何编辑控件上的验证器: th
我升级到 rc.4 并尝试使用新的 forms-api。这是我得到的: “类型错误:this.form.updateValueAndValidity 不是函数” 异常起源于 Angular 内的“fo
我是一名优秀的程序员,十分优秀!