如何引用 FormArray 的各个控件
How to reference individual controls of a FormArray
我坚持我需要在我的反应形式中用作数组的 formControlName,我希望数组是 [1,2,3] 但我希望能够从中添加和删除数组,但也有多个数组,如果我创建新数组并从表单外部设置数组,我可以让它工作,但我觉得如果我制作一个大的表单,它的可扩展性不会很大,谢谢你的帮助
我厌倦了制作 formControlName="{{j}}" 并且当我控制台记录数组时我仍然得到一个空值
this.multiplerForm = this.fb.group({
multipliers: this.fb.array([
this.fb.group({
reps: this.fb.array([]),
})
])
});
addReps(control){
control.push((this.fb.control('')));
}
removeReps(control,index: number) {
control.removeAt(index);
}
<StackLayout formArrayName="reps">
<GridLayout rows="*" columns="*,*,*" *ngFor="let rep of multiplier.get('reps').controls; let j=index" [formGroupName]="j" >
<Label col="0" text="Set {{j+1}}" ></Label>
<TextField col="1" formControlName="{{j}}" ></TextField>
<Button col="2" text="X" (tap)="removeReps(multiplier.controls.reps,j)"></Button>
</GridLayout>
</StackLayout>
Darian FormArray 可以是 FormGroup 的 FormArray 或 FormControl 的 FormArray。你有一个FormControls的Formarray,所以你使用[formControlName]="i",而不是[formGroupName]="i"
<div *ngFor="let rep of multiplier.get('reps').controls; let i=index">
<label>
Alias:
<input type="text" [formControlName]="i">
</label>
</div>
我坚持我需要在我的反应形式中用作数组的 formControlName,我希望数组是 [1,2,3] 但我希望能够从中添加和删除数组,但也有多个数组,如果我创建新数组并从表单外部设置数组,我可以让它工作,但我觉得如果我制作一个大的表单,它的可扩展性不会很大,谢谢你的帮助
我厌倦了制作 formControlName="{{j}}" 并且当我控制台记录数组时我仍然得到一个空值
this.multiplerForm = this.fb.group({
multipliers: this.fb.array([
this.fb.group({
reps: this.fb.array([]),
})
])
});
addReps(control){
control.push((this.fb.control('')));
}
removeReps(control,index: number) {
control.removeAt(index);
}
<StackLayout formArrayName="reps">
<GridLayout rows="*" columns="*,*,*" *ngFor="let rep of multiplier.get('reps').controls; let j=index" [formGroupName]="j" >
<Label col="0" text="Set {{j+1}}" ></Label>
<TextField col="1" formControlName="{{j}}" ></TextField>
<Button col="2" text="X" (tap)="removeReps(multiplier.controls.reps,j)"></Button>
</GridLayout>
</StackLayout>
Darian FormArray 可以是 FormGroup 的 FormArray 或 FormControl 的 FormArray。你有一个FormControls的Formarray,所以你使用[formControlName]="i",而不是[formGroupName]="i"
<div *ngFor="let rep of multiplier.get('reps').controls; let i=index">
<label>
Alias:
<input type="text" [formControlName]="i">
</label>
</div>