角度6:
我有这个表单生成器:
this.issuerDetails = this.formBuilder.group({
paymentInstruction: ['', [Validators.required]],
subscriptionTemplateHtml: ['', [Validators.required]],
});
在我删除验证器的路上,并将值/设置为原始值
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);
用户在提交表单时未正确触发它们
这是为什么?
当需要重置验证器时,必须运行updateValueAndValidity
来重置验证器
所以在所有这些代码之后都添加了这个:
this.issuerDetailsForm.subscriptionTemplateHtml.updateValueAndValidity({ onlySelf: true });
this.issuerDetailsForm.paymentInstruction.updateValueAndValidity({ onlySelf: true });
它运行验证程序并清除所有先前状态
下面的代码可能会帮助:
this.issuerDetails = this.formBuilder.group({
paymentInstruction: ['', [Validators.required]],
subscriptionTemplateHtml: ['', [Validators.required]],
});
用于重置:
this.issuerDetails.reset();
this.issuerDetails.updateValueAndValidity();