结合使用Mat-stepper停用保护功能,不会在重新访问步骤中检测到未保存的情况

问题描述

我正在使用Angular8。在我的应用程序中,我正在使用垫式步进器并以此方式使用它。

 <mat-vertical-stepper #stepper (selectionChange)="stepperSelectionChanged($event)" [linear]="isLinear">
        <mat-step *ngFor="let menu of displayMenus; let i = index" [label]="menu.title">
          <router-outlet *ngIf="i === selectedStep"></router-outlet>
        </mat-step>
 </mat-vertical-stepper>

在这里 displayMenus 数组包含需要加载的特定路由。组件中的内容正确加载,并且步进器也正常运行。在每个步骤中,我将加载具有formGroup的组件。 我正在使用canDeactivate()检测未保存的更改,我有四个步骤。我也在垫子步进器中使用线性属性。因此,保存步骤1之后,将转到步骤2。如果我确实更改并尝试返回第一步,则未保存的检测有效。 但是,如果我再次更改step1数据并单击任何其他路由,则更改检测(canDeactivate()方法)不会触发。 我注意到的是,一旦保存了数据,请转到下一步并返回,新的更改不会被视为未保存。 请帮助我,对此有任何想法的人。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...