我手风琴从步骤1到步骤8有 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#!#bidirectional-service)来处理组件之间的通信。
点击保存按钮后,每个组件都会将表单数据发送到HomeComponent。
基本上我计算将表单数据发送到HomeComponent的步数,如果count等于总表单数,那么我将保存数据。
this.formCount++;
if(this.totalFormCount == this.formCount)
{
if(this.formShouldBeSaved)
{
this.formCount = 0;
return this.save();
}
else
{
this.openAccordion(this.invalidFormName);
}
this.formCount = 0;
}
有没有更好的方法来处理上述情况?