2 回答

TA貢獻1860條經驗 獲得超9個贊
FormArray您可以使用 a為您的數據構建表單。使用 收聽變化valueChanges。
組件.ts
form: FormGroup
private formControls: {
data: FormArray;
};
ngOnInit() {
this.formControls = {
data: new FormArray(this.data.map(x => {
return new FormGroup({
enabled: new FormControl(x.enabled)
});
}))
};
this.formControls.data.valueChanges.subscribe(() => {
this.data.forEach((item, i) => {
item.enabled = this.formControls.data.controls[i].get('enabled').value;
});
});
this.form = new FormGroup(this.formControls);
}
組件.html
<form [formGroup]="form" (ngSubmit)="onSubmit(myForm)">
<ul class="list-group list-group-flush" formArrayName="data"
*ngFor="let a of data; index as i">
<li class="list-group-item" [formGroupName]="i">
<label>
<input formControlName="enabled" type="checkbox" />
{{ a.displayName }}
</label>
</li>
</ul>
<button>Submit</button>
</form>
初始表單數組是根據您的數據數組構建的。
表單指令反映了表單的結構。請注意如何[formGroupName]="i"綁定到i數組中的第 th 表單組。
演示:https ://stackblitz.com/edit/angular-88kjfq

TA貢獻1839條經驗 獲得超15個贊
有一個選項可以簡單地使用[(ngModel)]
和避免使用表單。一起工作this.data
https://stackblitz.com/edit/angular-ach8xw?file=src%2Fapp%2Fapp.component.html
添加回答
舉報