我的组件中有一个反应式表单,我想设置touched
每个输入的属性等于true
。我当前的代码执行此操作,但它会引发错误Cannot set property touched of #<AbstractControl> which has only a getter
:
addressForm: FormGroup;
...
this.addressForm = this._fb.group({
street: ["", [<any>Validators.required]],
city: ["", [<any>Validators.required]],
state: ["", [<any>Validators.required]],
zipCode: ["", [<any>Validators.required]],
country: ["", [<any>Validators.required]]
});
...
for (var key in this.addressForm.controls) {
this.addressForm.controls[key].touched = true;
}
我怎样才能设置touched
每个输入的值true
?
有一个非常简单的方法可以做到这一点:markAsTouched
。在表单组上使用它应该足够了。
this.addressForm.markAsTouched()
如果您出于某种原因想要手动标记所有控件,它们本身就有此方法可用。
markAsTouched
是一种方法AbstractControl
所有表单元素都继承自。出于好奇,您可能想参观一下@angular/forms/src/model.d.ts
声明文件中可以找到表单对象的一些更有趣的方法。或者只是访问文档 https://angular.io/docs/ts/latest/api/forms/index/AbstractControl-class.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)