我有一个包含许多表单控件的表单,其中某些控件具有验证器,例如:
title = new FormControl("", Validators.compose([
Validators.required
]));
description = new FormControl("", [
Validators.required,
Validators.minLength(1),
Validators.maxLength(2000)
]);
我该如何添加一个“保存为草稿”按钮,而不验证控件?或者删除它们?
我已经尝试了很多例子,比如:
saveDraft() {
this.addProjectForm.controls.title.clearValidators();
this.addProjectForm.controls.title.setErrors(null);
this.addProjectForm.controls.title.setValidators(null);
}
或者saveDraft() {
this.addProjectForm.controls['title'].clearValidators();
this.addProjectForm.controls['title'].setErrors(null);
this.addProjectForm.controls['title'].setValidators(null);
}
但是什么都没用...
this.addProjectForm.updateValueAndValidity()
不会更新所有子级表单控件。如果您想清除每个 formControl,则必须在每个子级上调用clearValidators
和updateValueAndValidity
。 - Random