angular - Angular不重置验证器
问题描述
角度 6:
我有这个表单生成器:
this.issuerDetails = this.formBuilder.group({
paymentInstruction: ['', [Validators.required]],
subscriptionTemplateHtml: ['', [Validators.required]],
});
用这个吸气剂
get issuerDetailsForm() { return this.issuerDetails.controls; }
在路上,我删除了验证器,并将值/设置为原始
this.issuerDetailsForm.subscriptionTemplateHtml.clearValidators();
this.issuerDetailsForm.subscriptionTemplateHtml.reset();
this.issuerDetailsForm.paymentInstruction.clearValidators();
this.issuerDetailsForm.paymentInstruction.reset();
当我重新启用这些验证器时
this.issuerDetailsForm.subscriptionTemplateHtml.setValidators(Validators.required);
this.issuerDetailsForm.paymentInstruction.setValidators(Validators.required);
用户提交表单时未正确触发它们
为什么是这样?
解决方案
下面的代码可能会有所帮助:
this.issuerDetails = this.formBuilder.group({
paymentInstruction: ['', [Validators.required]],
subscriptionTemplateHtml: ['', [Validators.required]],
});
对于重置:
this.issuerDetails.reset();
this.issuerDetails.updateValueAndValidity();