我有一个多步骤表单,用户来回遍历表单。我将表单数据保存在服务中,当他回来时,我使用patchvalue来修补要形成的所有数据。我也试过了setvalue,但表单字段没有标记为脏或触摸。如何标记更新为脏和触摸的字段?
this.formBuilder.pathValue(formData);
答案 0 :(得分:3)
您可以使用markAsDirty()
&显式标记表单对表单对象的markAsTouched()
方法。见API Here
this.formName.markAsDirty()
this.formName.markAsTouched()
答案 1 :(得分:3)
我找到的唯一解决方案是它。
this.form = this.formBuilder.group({
id:[null],
name: ValidatorsUtil.name(),
lastName: ValidatorsUtil.required(),
email: ValidatorsUtil.email(),
phone: ValidatorsUtil.required(),
});
this.form.setValue(this.client, {emitEvent: true});
Object.keys(this.form.controls).forEach( controlKey => {
this.form.controls[controlKey].markAsDirty();
});