Angular 7 отображает данные формы в модель API - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть группа форм 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, который вызывается при инициализации, если форма используется в качестве формы редактирования (если идентификатор находится в маршруте) для преобразования данных 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.

Возможно ли это или есть другой, более угловой способ решить эту проблему?Я делаю этот тип преобразования в формах по всему моему приложению.

...