【问题标题】:how to add array object inside another array in angular 4如何在角度4中的另一个数组中添加数组对象
【发布时间】:2023-03-27 06:40:01
【问题描述】:

我使用 formbuilder 创建了一个表单。我试图将数据数组对象创建到用户对象中,但它作为对象添加到用户数组中。下面是我的代码

export class AppComponent  {
  users = [ { "firstname": "ramu", "lastname": "mothukuri", "city": "chennai", "street": "sivan koiil street", "pin": "600024","data":[{"company":"xyz","address":"yyy"}] },
  { "firstname": "ramu", "lastname": "mothukuri", "city": "chennai", "street": "sivan koiil street", "pin": "600024","data":[{"company":"xyz","address":"yyy"}] },
  { "firstname": "ramu", "lastname": "mothukuri", "city": "chennai", "street": "sivan koiil street", "pin": "600024","data":[{"company":"xyz","address":"yyy"}] }
  ]
  myForm: FormGroup;

constructor(private fb: FormBuilder) { 
this.myForm = this.fb.group({
users: this.fb.array([])
})

let formArr = <FormArray>this.myForm.controls.users;
formArr.push(fb.group({
firstname: this.users[0].firstname,
lastname: this.users[0].lastname,
street: this.users[0].street,
data:this.users[0].data
}))
}

  onMy(form){

    console.log(form);
  }
}

我已附上屏幕截图,请查看

但我尝试编写代码但我没有得到下面是 json 表单值的预期格式

表单值:{

 "users": [
    {
      "firstname": "ramu",
      "lastname": "mothukuri",
      "street": "sivan koiil street",
      "data": [{
        "company": "xyz",
        "address": "yyy"
      }]
    }
  ]
}

下面是代码网址

CODE URL

【问题讨论】:

  • 你希望得到什么格式?
  • 下面是要获取的格式,只是我想将数据作为对象数组获取 [ { "firstname": "ramu", "lastname": "mothukuri", "street": "sivan koiil 街”,“数据”:[ {“公司”:“xyz”,“地址”:“yyy”}] } ] }
  • 你的问题太令人困惑了......
  • 酷,只是我想将数据格式化为数组对象,目前我得到了以下格式数据“:{“公司”:“xyz”,“地址”:“yyy”}预期格式是数据”:[{“公司”:“xyz”,“地址”:“yyy”}]。

标签: angular typescript


【解决方案1】:

你需要将数据声明为一个formArray

 let dataArr = new FormArray([]);
    dataArr.push(new FormGroup({
      'company': new FormControl(this.users[0].data[0].company),
      'address': new FormControl(this.users[0].data[0].address)
    }));


    let formArr = <FormArray>this.myForm.controls.users;
    formArr.push(fb.group({
      firstname: this.users[0].firstname,
      lastname: this.users[0].lastname,
      street: this.users[0].street,
      data: dataArr
    }));

【讨论】:

  • 不,我已经获得了表单值,但我需要将数据设置为对象数组
  • 当前格式 [ { "firstname": "ramu", "lastname": "mothukuri", "street": "sivan koiil street", "data": { "company": "xyz" , "address": "yyy" }} ] }, 预期格式为 [ { "firstname": "ramu", "lastname": "mothukuri", "street": "sivan koiil street", "data":[ { “公司”:“xyz”,“地址”:“yyy”}] } ] }
【解决方案2】:

在控件数据中的表单组声明中创建另一个表单组,而不仅仅是值。

let formArr = <FormArray>this.myForm.controls.users;
formArr.push(fb.group({
  firstname: this.users[0].firstname,
  lastname: this.users[0].lastname,
  street: this.users[0].street,
  data:this.fb.group({
     company: this.users[0].data.company, 
     address: this.users[0].data.address })
}))
}

这样你将得到数据作为数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 2020-05-24
    • 2019-09-12
    • 2021-12-23
    • 2021-12-28
    • 1970-01-01
    相关资源
    最近更新 更多