我正在使用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
个数据。 applicationID
是在save and proceed
个组件的first child
和我的second
,third
和fourth
子组件必须保留在{{1 }}基于first
的组件。
为了进一步使事情复杂化,每当用户保存信息时,都必须将其存储为applicationID
,并生成draft
(完全不同的路径)。然后,用户可以单击applicationID
,并且必须提取所有相同的信息,然后可以编辑上一个和下一个组件的信息。
对于正常的保存和继续,我将applicationID
存储在applicationID
中,并在所有子组件中获取所有信息。
即使我在同级组件中有可用信息,它也会触发多个调用吗,这是正确的方法吗?
对于编辑方案,我通过behaviour subject
将客户信息传递给所有子组件。这里的问题是在@Input
child
解决了ngOnInit
值之前就触发了parent
ngOnInit
。因此总是无法通过条件检查。
解决该问题的最佳方法是什么?谢谢您的宝贵时间!!
答案 0 :(得分:0)
对于“编辑方案”,如果使用@Input装饰器将值从“父级”传递给“子级”组件。您可以使用子组件中的ngOnChanges()方法访问这些值。
子组件:
ngOnChanges(changes: SimpleChanges) {
if(this.inputData){}
}
对于Application ID,您可以在单例服务中设置应用程序ID,并且可以通过注入服务在子组件中访问该应用程序ID。