Синхронизация данных формы нескольких компонентов при отправке
У меня есть 8 компонентов от шага 1 до шага 8 в аккордеоне, и кнопка сохранения находится в HomeComponent, так что это будет выглядеть так:
<app-step1></app-step1>
<app-step2></app-step2>
<app-step3></app-step3>
<app-step4></app-step4>
<app-step5></app-step5>
<app-step6></app-step6>
<app-step7></app-step7>
<app-step8></app-step8>
Я тоже должен сохранять данные формы на кнопку " Далее" в каждом шаге компонента. Я использую реактивные формы.
Моя стратегия:
Я использую сервис ( https://angular.io/docs/ts/latest/cookbook/component-communication.html) для обработки взаимодействия между компонентами.
Каждый компонент отправляет данные формы в HomeComponent при нажатии кнопки сохранения.
Я подсчитываю, сколько шагов отправляю данные формы в HomeComponent, и если количество равно общему количеству формы, я сохраняю данные.
this.formCount++;
if(this.totalFormCount == this.formCount)
{
if(this.formShouldBeSaved)
{
this.formCount = 0;
return this.save();
}
else
{
this.openAccordion(this.invalidFormName);
}
this.formCount = 0;
}
Так есть ли лучший способ справиться с вышеуказанной ситуацией?