我不知道如何重置 FormArray 的单个字段,例如:
myForm = this.fb.group(
{
title: ["", [Validators.required, Validators.minLength(4)]],
date: ["", Validators.required],
pairs: this.fb.array(
this.fPairs.map(f =>
this.fb.group({
score: [],
value: [],
valueRel: []
})
)
)
},
{
validator: minMaxValidator
}
);
所以我的 FormArray 是一个由 4 个对象组成的数组,因为它是从以下位置映射的:
fPairs: Array<fPairs> = [
{score: 0, value: 0, valueRel: 0},
{score: 0, value: 0, valueRel: 0},
{score: 0, value: 0, valueRel: 0},
{score: 0, value: 0, valueRel: 0}
];
到目前为止,为了重置我的表单的这一部分,我取得的成就是:
pairsControl= this.myForm.controls["pairs"] as FormArray;
然后使用:
this.pairsControl.reset();
但这会重置 FormArray 的每个字段,而我想要的是只能重置特定字段,
例如score"
所有 4 个对象的 " 字段,同时保留完整的 value 和 valueRel 字段
我试过这个:
this.fixedPointsControl.reset(["score"]);
但它所做的是像之前的表达式一样重置所有内容,所以没有任何变化!
重置formArray的特定字段的正确方法是什么?