【发布时间】:2018-11-15 01:30:39
【问题描述】:
我有一个带有 2 个主要组件的 Angular 应用程序(我们称它们为 comp A 和 comp B)。在任何给定时间,都会有随机数量的 As 和 B 被初始化。 每个组件都有自己的“数据”变量,他在初始化后获得。
我想实现一种检查方式,在销毁组件时,“数据”是否已从其初始值更改。如果有,我想通知用户并给他 2 个选项:离开页面而不保存或停留在页面上。
作为解决方案,我制作了初始“数据”的副本,并计划在组件销毁时检查数据是否已更改,最终停止组件的销毁。
问题是:有没有办法阻止组件的销毁?
我知道我可以选择使用 canDeactivate 保护。我不能真正使用它,因为组件可能没有从路由初始化。
【问题讨论】:
-
否,但该解决方案无论如何都行不通。您可以监听
beforeunload事件然后发起检查。 -
关闭页面时触发beforeunload。我需要在卸载组件时触发的东西。有没有办法将beforeunload分配给组件?(据我所知,window.beforeunload需要来自我的组件的回调)
-
组件的破坏是某事的结果。你想对那个事件做出反应,不管它是什么。
标签: javascript angular typescript destroy