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
添加回答
举报