我们更换组件时如何删除会话存储数据

时间:2019-06-23 08:21:15

标签: angular session-storage

我有一个x组件,我将一个值存储在会话存储中。现在,如果我导航到任何其他组件,则要删除并转到其他组件。我在ng destroy中编写了删除逻辑,但是如果我使用URL补丁更改,则ng-destroy无法执行。

然后我在X组件ngOnInIt()中编写了删除登录名,当我刷新x组件时,会话存储正在删除,但是我不希望这样做。在刷新时,会话存储应该保留。其他情况应将其删除。

我不想编写要删除的其他组件中的代码,因为其他组件“ MAY”也具有相同类型的具有相同键的存储值。

1 个答案:

答案 0 :(得分:0)

可能是在刷新时,您可以侦听beforeunload和unload事件,并且可以在会话存储中设置一些标志并检查ngOnInit中是否存在falg。如果存在,请不要执行删除会话存储逻辑。

您需要监听window:beforeunload事件。

@HostListener('window:beforeunload') onBeforeUnload() {
   // add your logic
}