首页 > 解决方案 > 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 错误类型错误:无法读取未定义的属性“值”

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

标签: angularangular-materialangular8angular-formsangular-json

解决方案


您需要将 address 设置为 formGroup 并将 line1 和 pinecode_id 设置为 formControls 或仅使用 pinecode_id 和 line1 作为单独的表单控件,如果 address 本身没有特殊值,则无需将它们分组到 address 内。

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

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

然后您可以像这样访问表单值CustomFormControl.controls[name].value


推荐阅读