2017-07-16 73 views
0

我试图通过LocalStorage跟踪一些值的状态。我在服务中初始化它,并在控制器中相应地使用/修改它,使用set和get函数。 问题在于页面重新加载时。这就是为什么最初我决定首先使用localStorage的原因。由于我在服务中初始化变量,每次页面重新加载时,localStorage中的变量值也是如此。角度刷新后的持久localStroage变量

我的服务:

AuthService.$inject = ['$q', '$http', 'LocalStorage', 'CONFIG']; 
function AuthService($q, $http, LocalStorage, CONFIG) { 
    LocalStorage.set("isloggedin", false); 
}); 

由于这只是测试的本地存储的使用,我只是初始化并打印的价值,所以我真的不认为一些其他的代码负责该变量变为假。

我也尝试使用根范围(尽管许多建议不要),并且宁愿不尝试其他任何事情,直到我有本地存储的事情想通了。那么有没有办法让本地存储中的值持久化?

+0

不确定是什么问题? 'LocalStorage'引用'window.localStorage'吗? – guest271314

+0

你真的需要为此使用角度模块吗?它建在Javascritp中,不需要外部库。本地存储是永久性的,但每个浏览器的行为都不相同,例如,Mozilla实现它就像一个cookie和Chrome一样。这样说,你不应该严重依赖本地存储,也不应该存储任何敏感信息,因为它可以从客户端轻松操纵。 – Adriani6

+0

@ Adriani6我正在玩一个现有的移动应用程序离子项目。虽然它包含了一个好的结构,但根本没有功能。我不会说谎,并且说我明白所有事情都是确切的,但这很有趣,所以我正在尝试在其中构建一些基本功能。 (很少存在)逻辑已经可以与角度js一起工作。但是,如果存储登录状态或其他需要持久化的数据,我将不胜感激。 –

回答

0

好吧,我真的很讨厌在问题发布5分钟后找出答案,我仍然不确定这是正确答案还是最有效的解决方案。但这就是我所做的和它的工作。

本地存储变量的初始声明显然在角度js中是不必要的。您只需在需要时设置这些值,即使重新加载后它们也会继续。

无论如何,作为一个新手,我会欢迎每一个关于这篇文章的建议,解释,问题或评论。