Hac*_*ker 5 angular angular4-forms
我有一个多步骤表单,其中用户来回遍历表单。我将表单数据保存在服务中,当他回来时,我使用patchvalue将所有数据打补丁成表单。我也尝试了setvalue,但是表单字段没有被标记为脏的或被触摸的。我如何将已更新的字段标记为脏的?
this.formBuilder.pathValue(formData);
Run Code Online (Sandbox Code Playgroud)
Pan*_*kar 13
您可以在表单对象上使用markAsDirty()&markAsTouched()方法显式标记表单。在此处查看API
this.formName.markAsDirty()
this.formName.markAsTouched()
Run Code Online (Sandbox Code Playgroud)
更新
从 Angular 8 开始,您可以使用markAllAsTouched将所有表单字段标记为touched
this.formName.markAllAsTouched()
Run Code Online (Sandbox Code Playgroud)
小智 6
我为这个问题找到的唯一解决方案是。
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();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3686 次 |
| 最近记录: |