在Angular 6中,可以使用reset()
方法来重置响应式表单。默认情况下,重置表单将清除所有表单字段的值,并将它们设置为初始状态。如果想保留表单字段的当前状态,可以使用patchValue()
方法。
以下是一个示例代码,演示如何在重置表单时保留表单字段的当前状态:
import { Component, OnInit } from '@angular/core';
import { FormGroup, FormControl } from '@angular/forms';
@Component({
selector: 'app-my-form',
templateUrl: './my-form.component.html',
styleUrls: ['./my-form.component.css']
})
export class MyFormComponent implements OnInit {
myForm: FormGroup;
ngOnInit() {
this.myForm = new FormGroup({
name: new FormControl('John'),
email: new FormControl('john@example.com')
});
}
resetForm() {
this.myForm.patchValue({
name: this.myForm.get('name').value,
email: this.myForm.get('email').value
});
}
}
在上面的示例代码中,我们创建了一个名为myForm
的响应式表单,并将其初始化为具有两个表单字段:name
和email
。在重置表单时,我们使用patchValue()
方法将表单字段设置为它们当前的值,从而保留了它们的状态。
在组件的模板文件(my-form.component.html)中,可以添加一个按钮来触发重置表单的操作:
以上代码中的按钮会调用resetForm()
方法来重置表单。
希望这个示例可以帮助你理解如何在Angular 6中重置响应式表单并保留状态。