我需要创建一些具有相同定义的FormGroup。因此,我用结构创建了一个const:
export const predefinedFormGroup = {
'field1': new FormControl(null, [Validators.required]),
'field2': new FormControl(null, [Validators.required]),
'field3': new FormControl(null, [Validators.required]),
'field4': new FormControl(null)
};
我需要这个作为对象,因为我不仅使用它来创建表单组,我还在字段上进行一些迭代以用于其他目的。
然后,我使用此方法创建FormGroup:
this.form = new FormGroup(predefinedFormGroup)
它有效,但有一个大问题:
当在字段上使用类型信息时,成本正在发生变化,因为TypeScript通过引用传递了predefinedFormGroup,所以下次我使用保存行this.form = new FormGroup(predefinedFormGroup)
创建另一个具有相同结构的formGroup时,表单与第一个formGroup中填充的值一起使用。
我知道我可以使用form.reset()来清除值,但我确信有更好的方法可以通过val将结构传递给FormGroup。
有人可以帮忙吗?
答案 0 :(得分:1)
您可以创建工厂功能而不是变量
export const predefinedFormGroupFactory = () => ({
field1: new FormControl(null, [...]),
field2: new FormControl(null, [...])
})
并像
一样使用它const predefinedGroup = predefinedFormGroupFactory();
this.form = new FormGroup(predefinedGroup);