ng-docs.github.io icon indicating copy to clipboard operation
ng-docs.github.io copied to clipboard

刷新当前页面 或手动输入url地址回车后,service属性数据丢失?

Open app2smile opened this issue 5 years ago • 4 comments

1.ng g s login新建的一个login service服务.其中有一个属性isLogin保存用户登录状态 用户登陆之后更改isLogin为true

2.这个login service注入进了一个路由守卫中,路由守卫通过判断login service中的isLogin字段是否为true来决定是否跳转/list路径 ,如果isLogin为false 那么跳转登陆页面/login

3.正常登陆之后也跳转了/list路径,但是当我在/list路径刷新页面的时候,这个时候页面却跳转到了/login

4.问题是,新建的service不是注入成了root 是单例的吗?为什么属性值会丢失?

app2smile avatar May 17 '19 10:05 app2smile

刷新页面时整个页面都会被重置,所以不会留下任何内存变量 —— 不管用什么形式。 登录这类功能,你应该使用 router 的 guard 来实现,也就是说当进入需要登录的路由之前,先去服务器查询一下自己的身份,如果登录过,就把它放进服务中。

asnowwolf avatar May 17 '19 12:05 asnowwolf

请把关键数据保存到localStorge/cookie中,其他地方都是临时跑在内存中,刷新就没了

wszgrcy avatar May 17 '19 12:05 wszgrcy

ok 感谢回复

app2smile avatar May 17 '19 12:05 app2smile

请把关键数据保存到localStorge/cookie中,其他地方都是临时跑在内存中,刷新就没了

个人感觉放在llocalStorge/cookie里 并不好因为 这个在客户端浏览器 就可以改掉 这些数据

is-tongben avatar Sep 26 '19 05:09 is-tongben