问题描述
我想用对象数组生成JSON驱动的表单,目前stackbiz正在处理单个对象json(person.js),我正在尝试使用下面的JSON数组修改person.ts
对于json
[{
name: {
label: 'Name',value: 'Juri',type: 'text',validation: {
required: true
}
},age: {
label: 'Age',value: 32,type: 'text'
},gender: {
label: 'Gender',value: 'M',type: 'radio',options: [
{ label: "Male",value: 'M'},{ label: "Female",value: 'F'}
]
},city: {
label: 'City',value: '39010',type: 'select',options: [
{ label: "(choose one)",value: ''},{ label: "Bolzano",value: '39100'},{ label: "Meltina",value: '39010'},{ label: "Appiano",value: '39057'}
],validation: {
required: true
}
}
},{
name: {
label: 'Name',value: 'Juri1',value: 'F'}
]
}
}]
我在多对象json上面遇到的问题是,我遍历对象数组并在循环中使用新的formControl创建formGroup,然后尝试将其推入formArray而不是成功,但没有成功,任何帮助或建议都值得赞赏,我陷入了formArray vs FormBuilder vs FormGroup的困境,现在大脑无法正常工作:(
这是我要修改的广告链接:https://stackblitz.com/edit/angular-dynamicforms-blogarticle-fjkjx4
解决方法
您可以只创建一个空的formArray来存储响应。
https://stackblitz.com/edit/angular-dynamicforms-blogarticle-jns9xq
public formResponses: FormArray = new FormArray([]);
onSubmit(form) {
if (form.valid) {
this.formResponses.push(new FormControl(form.value));
}
}