1

mat-stepper用于实施客户入职流程。所有 5 个人child mat-stepper component都在一个parent组件内。

<parent-html>
   <mat-horizontal-stepper #ccStepper [linear]="isLinear">
     <mat-step [stepControl]="childAForm">
       <child-a></child-a>
     </mat-step>
   </mat-horizontal-stepper>

 <mat-horizontal-stepper #ccStepper [linear]="isLinear">
     <mat-step [stepControl]="childBForm">
       <child-b></child-b>
     </mat-step>
   </mat-horizontal-stepper>
//3 more child components
</parent-html>

我必须save and proceed为每个子组件提供数据。在component和myapplicationID之后生成,子组件必须基于.save and proceedfirst childsecondthirdfourthfirstapplicationID

更复杂的是,每当用户保存信息时,都必须像生成的一样存储draftapplicationID完全不同的路线)。然后用户可以单击applicationID,所有相同的信息都必须被获取,然后用户可以编辑上一个和下一个组件的信息。

对于正常的保存和继续,我存储并获取所有子组件中的所有信息applicationIDbehaviour subject

即使我在同级组件中有可用的信息,它是否会触发多个调用,这是正确的做法吗?

对于编辑场景,我将客户信息传递@Input给所有子组件。这里的问题是在解决该值child ngOnInit之前被触发。因此总是未能通过条件检查。parent ngOnInit@Input

解决它的最佳方法是什么?谢谢你的时间!!!

4

1 回答 1

0

对于编辑场景,如果您使用 @Input 装饰器将值从父组件传递到子组件。您可以使用子组件中的 ngOnChanges() 方法访问这些值。

子组件:

ngOnChanges(changes: SimpleChanges) {
    if(this.inputData){}
}

对于应用程序 ID,您可以在单例服务中设置应用程序 ID,您可以通过注入服务在子组件中访问该应用程序 ID。

于 2018-08-12T09:17:21.227 回答