Ребята, у меня есть массивная форма, построенная из Angular ReactiveForms, включая вложенный массив с собственным вложенным массивом.
В ngOnInit () я получаю данные из API:
private approval: Approval;
return this.apiService.getApproval(+id).map(data => {
this.approval = data;
});
Затем я исправляю форму:
this.form.patchValue(this.approval, { emitEvent: false });
, а затем при вызове SUBMIT
private onSubmit() {
Object.assign(this.approval, this.form.value);
return this.apiService.updateApproval(this.approval).map(data => {
});
}
API, к которому я подключаюсь, требует, чтобы полный объект был POST-ed, а не просто изменялся (PATCH не реализована). Поэтому я не могу использовать this.form.value
, но мне нужно отправить полный объект.
Я ищу что-то похожее на .NET / C# AutoMapper. Код выше - Object.assign - делает то, что мне нужно для свойств первого уровня. Примитивные типы обновляются, однако свойства, такие как массивы или объекты, игнорируются.
Есть ли какой-нибудь рекомендуемый путь * Angular, как с этим бороться? Спасибо!
РЕДАКТИРОВАТЬ: кажется, что массивы перезаписаны. У объектов в массиве обновленные значения, но некоторые свойства исходного объекта, отсутствующие в форме, отсутствуют.