首页 > 解决方案 > Angular 7响应式表单如何重置表单并获取其初始值而不是将它们重置为空值

问题描述

有没有办法将反应式表单组重置为其初始值,而不是使用.reset()方法将其清空?

我有以下stackblitz,其中默认选择值为Parent,如果用户将其更改为姐妹,并希望将表单设置为初始值,请单击重置按钮执行此操作。

目前,我尝试过:

this.formGroup.reset();
//Or
this.formGroup.markAsPristine;
//Or
this.formGroup.markAsTouched

.reset()完全重置表格。

PS 有人可能会说用户可以重新选择默认值,而不是点击重置按钮。但就我而言,我有一个巨大的用户表单,他需要在其中更新他的信息,如果他在某些值上弄错了,他可能需要重置为初始值。

标签: angularangular-reactive-formsangular-formsangular7

解决方案


您可以保存表单初始值:

this.initialValues = this.formGroup.value;

然后将这些值传递给重置函数:

this.formGroup.reset(this.initialValues);

推荐阅读