问题描述
我需要帮助设置 FormGroup。
this.formBuilder.group({
id: [(this.idItem) ? this.idItem : null],quantity: [{value: 1,disabled: false}],attributes: this.formBuilder.array([])
});
在每个属性中,我还有另外两个 formArray:
attribute_values;
attribute_selected;
后端检索数据时我填写attribute_values如下:
data.attributes.forEach(attribute => {
formArray.push(this.formBuilder.group({
attribute_values: this.setAttributeValues(attribute.attribute_values),attributes_selected: this.formBuilder.array([])
}))
});
this.myForm.setControl('attributes',formArray);
我使用以下函数在attribute_values中设置数据:
setAttributeValues(items): FormArray {
const formArray = new FormArray([]);
items.forEach(item => {
formArray.push(this.formBuilder.group({
name: [item.name],description: [item.description],photo: [item.photo],price: [item.price],}))
});
return formArray;
}
我用这个表单动态创建了一个带有attribute_values数据的checkBox列表,如下:
<div
formArrayName="attribute_values">
<div *ngFor="let attribute_value of attribute.get('attribute_values')['controls']; let j = index;">
<div [formGroupName]="j">
<mat-checkBox>{{attribute_value.value.name}}</mat-checkBox>
</div>
</div>
</div>
What I would like is that when a checkBox is selected its value is included in the attributes_selected array.我正在手动执行此操作,并在复选框的更改事件中使用一个函数。但我想通过 formBuilder 来做,这样当我用来自后端的数据做 form.patchValue(data) 时,之前选择的那些选项会自动填充。
有没有办法以这种方式创建这个 formGroup?
非常欢迎任何帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)