Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 被动表单将表单值正确地转换为列表形式的模型对象_Javascript_Angular - Fatal编程技术网

Javascript 被动表单将表单值正确地转换为列表形式的模型对象

Javascript 被动表单将表单值正确地转换为列表形式的模型对象,javascript,angular,Javascript,Angular,我正在尝试将提交的表单转换为对象 我一直在使用下面的帖子作为指导 但是,该示例仅适用于单个对象,而不是对象列表 我有一个人对象 person.ts export class Person { public constructor(init?: Partial<Person>) { Object.assign(this, init); } x: number; y: number; personId: number; fir

我正在尝试将提交的表单转换为对象

我一直在使用下面的帖子作为指导

但是,该示例仅适用于单个对象,而不是对象列表

我有一个
对象

person.ts

export class Person {
    public constructor(init?: Partial<Person>) {
      Object.assign(this, init);
    }
    x: number;
    y: number;
    personId: number;
    firstName: string;
    lastName: string;
    email: string;
    companyName: string;
    staffCode: string;
  }
  public onSubmit(): void {
    const data: any = this.approvalEditFormGroup.value;
    console.log(data);
    this.person = new Person(this.approvalEditFormGroup.value);
    console.log(this.person);
  }
结果:

问题

如何将
this.approvalEditFormGroup.value
转换为
人员列表(
人员[]


您只需要映射表单值,并在表单值中的每个项上创建Person类的新实例 像这样的

const data: any = this.approvalEditFormGroup.value;

persons: Person[] = Object.keys(data).map(key => new Person(data[key]));

表单值是否根据屏幕截图中的第一个对象返回人员数组?是的,屏幕截图是approval-edit.component.ts中的
控制台.log
的结果
const data: any = this.approvalEditFormGroup.value;

persons: Person[] = Object.keys(data).map(key => new Person(data[key]));