我尝试使用insert()更新formArray上的一个特定值。我在ngOninit()上初始化表单,如下所示:
this.myForm = this.fb.group({
exercises: this.fb.array([]),
type: new FormControl(),
day: new FormControl(),
sets: this.fb.array([]),
reps: this.fb.array([]),
});
我有一个输入,在这里我调用了下面的函数,但是当我试图插入一个新的值,数组的索引,我得到的值推送。
onSetsChange(sets, index){
var setsFormArray = <FormArray>this.myForm.controls.sets;
setsFormArray.insert(index, new FormControl(sets));
}
HTML代码如下所示:
<div class="col-md-3">
<select class="form-control input-sm" (change)="onSetsChange($event.target.value, exerciseIndex)">
<option *ngFor="let set of sets; let i = index;">{{set}}</option>
</select>
</div>
我传递的exerciseIndex来自一个循环,但它没有出现。
我做错了什么,它的价值没有更新?谢谢
2条答案
按热度按时间ss2ws0br1#
这是我想出的另一个解决方案谢谢
p4rjhz4m2#
尝试使用
patchValue
:-