Angularjs: 为什么页面刷新会破坏$rootScope 的值?
Angularjs: Why page refresh destroy the values of $rootScope?
在我的本地路由中 http://localhost:9000/#/deviceDetail/ 我有一个管理该视图的控制器。在转到该视图之前,我将一些变量设置为 $rootScope
(,例如 $rootScope.dashboards
)。
进入该视图后,我可以访问仪表板 属性,但是当我使用 F5
键刷新页面时,例如 属性 仪表板丢失了。
我试图将 $rootScope
保存在 localStorage 变量上,但我遇到了 JSON.stringify
方法的循环引用问题。
有什么管理技巧吗?
AngularJS 是一个 JavaScript 框架,所有内容都存储在内存堆中,当您打开一个页面时,该堆就会启动,并在您关闭页面后被销毁。在此上下文中,浏览器刷新就像关闭并重新打开页面。
要在刷新后保留该值,您应该将其存储在 cookie 中,为此您使用例如 M K 推荐的 $cookies
or sessionStorage / localStorage。
使用 localStorage 和 $stateChangerStart 检查您是否使用 ui.route
像这样
$rootScope.$on('$stateChangeStart', function(event, toState) {
// Grab the user from local storage and parse it to an object
var user = JSON.parse(localStorage.getItem('user'));
if(user) {
$rootScope.currentUser = user;
}
});
我尝试按照 Getting started with AngularJS and ASP.NET MVC - The long awaited Part Three 上的文章使用 cookie 存储身份验证令牌。但是每当我按下 F5 或刷新 Chrome 浏览器时,cookie 就会被销毁。
那篇文章说 ngCookies 有助于处理页面刷新以维护页面刷新的令牌。我以为它确实如此,我不知道 ngCookies 杀了我。如果页面刷新它就被破坏了!下班后在线研究我看到这篇文章对我有帮助。
据M K说,我用localStorage(或sessionStorage)帮我摆脱了cookies的头痛。 使用 cookie 来存储身份验证令牌或其他东西不是一个好主意。我 运行 遇到了那个问题,但我迷路了(不知道来自 "using cookies" 的错误),就像上面的文章 mentioned/confirmed 一样。所以,这是那篇文章中的错误。
万次感谢,M K
在我的本地路由中 http://localhost:9000/#/deviceDetail/ 我有一个管理该视图的控制器。在转到该视图之前,我将一些变量设置为 $rootScope
(,例如 $rootScope.dashboards
)。
进入该视图后,我可以访问仪表板 属性,但是当我使用 F5
键刷新页面时,例如 属性 仪表板丢失了。
我试图将 $rootScope
保存在 localStorage 变量上,但我遇到了 JSON.stringify
方法的循环引用问题。
有什么管理技巧吗?
AngularJS 是一个 JavaScript 框架,所有内容都存储在内存堆中,当您打开一个页面时,该堆就会启动,并在您关闭页面后被销毁。在此上下文中,浏览器刷新就像关闭并重新打开页面。
要在刷新后保留该值,您应该将其存储在 cookie 中,为此您使用例如 M K 推荐的 $cookies
or sessionStorage / localStorage。
使用 localStorage 和 $stateChangerStart 检查您是否使用 ui.route 像这样
$rootScope.$on('$stateChangeStart', function(event, toState) {
// Grab the user from local storage and parse it to an object
var user = JSON.parse(localStorage.getItem('user'));
if(user) {
$rootScope.currentUser = user;
}
});
我尝试按照 Getting started with AngularJS and ASP.NET MVC - The long awaited Part Three 上的文章使用 cookie 存储身份验证令牌。但是每当我按下 F5 或刷新 Chrome 浏览器时,cookie 就会被销毁。
那篇文章说 ngCookies 有助于处理页面刷新以维护页面刷新的令牌。我以为它确实如此,我不知道 ngCookies 杀了我。如果页面刷新它就被破坏了!下班后在线研究我看到这篇文章对我有帮助。
据M K说,我用localStorage(或sessionStorage)帮我摆脱了cookies的头痛。 使用 cookie 来存储身份验证令牌或其他东西不是一个好主意。我 运行 遇到了那个问题,但我迷路了(不知道来自 "using cookies" 的错误),就像上面的文章 mentioned/confirmed 一样。所以,这是那篇文章中的错误。
万次感谢,M K