首页 > 解决方案 > 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);

用户提交表单时未正确触发它们

为什么是这样?

标签: angularangular6

解决方案


下面的代码可能会有所帮助:

this.issuerDetails = this.formBuilder.group({
  paymentInstruction: ['', [Validators.required]],
  subscriptionTemplateHtml: ['', [Validators.required]],
});

对于重置:

this.issuerDetails.reset();
this.issuerDetails.updateValueAndValidity();

推荐阅读