Angular 7将表单数据映射到API模型

时间:2018-11-21 10:20:31

标签: angular typescript automapper asp.net-core-webapi angular7

我有一个带有嵌套表单组的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模型。

这是否可能,或者还有另一种角度更好的解决方案?我正在整个应用程序的表单上进行这种类型的转换。

0 个答案:

没有答案