我有一个带有嵌套表单组的Angular(使用Angular 7的最新版本)表单组:
this.form = this._formBuilder.group({
person: this._formBuilder.group({
name: [''. Validators.required],
firstName: [''. Validators.required],
birthDate: [new Date()]
}),
request: this._formBuilder.group({
title: [''. Validators.required],
startDate: [new Date()],
endDate: [new Date()],
}),
});
这需要映射到具有不同结构的API POST模型:
interface ApiData {
personName: string;
personFirstName: string;
personBirthDate: Date;
requestTitle: string;
requestStartDate: Date;
requestEndDate: Date;
}
当前,我有一个_patchForm方法,如果将该表单用作编辑表单(如果路由中有一个ID),则它将在init上调用,以将API数据转换为表单模型: 在提交表单时,我将表单模型转换为API数据。
let entity: ApiData = {};
entity.personName = this.form.get('person').get('name').value;
entity.personFirstName = this.form.get('person').get('firstName').value;
...
this._http.post(apiUrl, entity).subscribe( ... )
在C#中,我为此使用了Automapper,但是由于automapper-ts不是为Angular编写的,因此我不确定这是否适用于FormGroup模型。
这是否可能,或者还有另一种角度更好的解决方案?我正在整个应用程序的表单上进行这种类型的转换。