后端以角度2

问题描述

我想用对象数组生成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'}
    ]
  }
}]

因此模板输出应该是这样的(包括两个部分)

enter image description here

enter image description here

我在多对象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));
    }
  }

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...