ANGULAR 8-如何传递json内部json中的数据

问题描述

在角度8中 我的json格式传递数据就像

 {
  "name": "","address": {
    "line1": "","pincode_id": ""
  }
}

我创建了格式以传递数据以提交表单

Format() {
    let data = this.Form.controls;
    let ctofclass = new type();
    ctofclass.name = data['name'].value;
    ctofclass.line1 = data.address['line1'].value;
    ctrofclass.pincode_id = data.address['pincode_id'].value.id;
    return ctofclass;
  }

class type {
  name: string;
  line1: string;
  pincode_id:any;
  
}

如何传递json内的json中的数据
当我使用这种格式时,在下面的这一行中出现错误

ctrofclass.line1 = data.address['line1'].value;

core.js:6260错误TypeError:无法读取未定义的属性'value'

地址在json内,以及如何传递数据以提交表单

解决方法

如果address本身没有特殊值,则需要将address设置为formGroup并将line1和pinecode_id设置为formControl,或者仅将pinecode_id和line1用作单独的formcontrol而不将它们分组在address内。

使用第二种解决方案的示例(最简单):

CustomFormControl = formbuilder.group({
   name: [initialValue],pincode_id: [address.pincode_id] // mapping is done here
   line1: [address.line1]
})

然后,您可以访问类似CustomFormControl.controls[name].value

的表单值