【发布时间】:2016-10-03 05:44:11
【问题描述】:
我正在通过 angularjs 中的工厂访问存储在本地存储中的数据。在页面加载时,工厂从本地存储加载和访问数据,并将它们存储在变量中。我可以调用该工厂并获取变量中的值。
但是,每当我在本地存储值更改后调用工厂时,工厂都会返回旧值而不是新值。有没有办法刷新工厂,以便它再次获取本地存储值而不刷新整个页面?
Javascript 代码..
headerApp.factory('userFactory', ['$rootScope', function($rootScope){
var dataFactory = {};
dataFactory.user = localStorage.getItem("valueA");
dataFactory.userName = localStorage.getItem("valueB");
dataFactory.userAccessToken = localStorage.getItem("valueC");
return dataFactory;
}]);
在调用 userFactory.user 时,函数更改 localstorage 值后的 userFactory.userName 返回旧值而不是新值。请帮忙
【问题讨论】:
-
只要您的本地存储值发生更改,以后每当您尝试通过工厂/服务访问该值时,它都假定采用新更新的值。如果不是 theb,我不确定我是否完全理解您的观点。
-
是的,您可以在本地存储值更改时存储它并将其设置为工厂,然后尝试访问
-
嗯,你可以在工厂有一个更新方法,从本地存储中获取最新数据并更新变量。您可以在更新本地存储时调用此方法。
-
为什么直接通过localStorage更新数据,而不是通过服务?
标签: javascript angularjs factory angularjs-factory