Angularjs 1.5 localstorage在我使用其他凭据在新选项卡中打开应用程序时会被覆盖

时间:2017-11-13 09:42:11

标签: angularjs

在angularjs 1.5中,我使用本地存储来存储与会话相关的信息。 但是当我打开带有其他凭据的新标签时,初始信息会被删除并被新标记取代,有什么方法可以防止这种情况发生吗?

2 个答案:

答案 0 :(得分:0)

是的,你正在做的是用新数据替换相同的密钥,这就是它被替换的原因。你应该做的是创造新的' Key'为每个会议。

实施例

//localStorage.setItem('key', 'value' )
//What you should do is for each login user create a new key

//sessionId can be any id you want for new session, this way you won't overwrite the previous session data
  localStorage.setItem(sessionId, loginSessionData);

答案 1 :(得分:0)

由于您没有提供任何代码示例,因此很难分辨出发生了什么,但我想当应用程序启动时您将一些值设置为localstorage,因此每次打开新选项卡时都会再次设置它并覆盖以前的价值。

您需要做的就是检查localstorage中是否存在该值以及它是否无效:

if (!localStorage.getItem('myItem')){
      localStorage.setItem('myItem', myValue));
}