javascript - 反应式表单正确地将表单值转换为模型对象作为列表
问题描述
我正在尝试将提交的表单转换为对象。
我一直在使用以下帖子进行指导。
但是,该示例仅适用于单个对象,而不适用于对象列表。
我有一个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;
}
在这里我提交表单,并尝试将其转换为Person
对象。
批准-edit.component.ts
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
Person[]
persons: Person[] = convert(this.approvalEditFormGroup.value);
解决方案
您只需要映射表单值并在表单值中的每个项目上创建 Person 类的新实例,如下所示
const data: any = this.approvalEditFormGroup.value;
persons: Person[] = Object.keys(data).map(key => new Person(data[key]));
推荐阅读
- html - Live Server 扩展不会使用 WSL2 自动重新加载
- java - 在特定条件下保存对象的 HashMap 值时出错
- excel - 如何使用地址获取范围内的值
- datetime - 您将如何计算 DATE_TIME 对象在埃菲尔的纪元以来的秒数
- html - Xpath没有得到任何数据
- parameters - SAS:为宏程序的参数输入特定值
- python - 将列表分成两部分,尽可能等于总和
- pygame - 我在让 pygame 工作时遇到问题,因为我不明白如何分配路径
- html - 如何仅填充段落的底部?
- docker - AWS (ECS) 上的 keycloak 集群 - 任务无法通信