【发布时间】:2018-12-23 13:08:16
【问题描述】:
我有一个使用角度材料选项卡组的角度组件。
<mat-tab-group>
<mat-tab label="First"> <app-comp1></app-comp1> </mat-tab>
<mat-tab label="Second"> <app-comp2></app-comp2> </mat-tab>
<mat-tab label="Third"> <app-comp3></app-comp3> </mat-tab>
</mat-tab-group>
在某个选项卡中,用户可以进行一些更改并保存。如果用户做了一些更改并尝试导航到另一个选项卡而不保存,我想在导航到另一个选项卡之前要求用户确认放弃更改。
有什么办法吗?
【问题讨论】:
-
如果你使用路由,你可以使用
CanDeactivaterouter guard。 -
假设用户在标签一中进行了一些更改,然后尝试导航到标签二,您可以将第二个和第三个标签标签与 (click) 事件绑定,以检查用户是否完成了某些工作或不是,如果是,则显示保存数据的弹出窗口(直接保存或将用户路由回选项卡一)或丢弃,如果丢弃则删除用户的活动,因此单击任何其他选项卡时不会显示弹出窗口.
标签: angular angular-material mat-tab