2016-11-09 45 views
1

我对AngularJS非常陌生,我尽量实现一个尽可能干净的litte Ionic应用程序。角度使用sessionStorage的最佳方式

我的应用程序包含一个登录控制器,它将登录的用户存储在$ rootScope中,但我读过使用$ rootScope并不是在控制器之间共享变量的好实践。

所以我想用的sessionStorage与localStorage的,但我不知道什么是它的最佳实践:

  • 如果我ServiceLogin服务直接写在存储或发送数据到控制器,它成为唯一谁可以写入存储?

  • 可以/应该直接在{{}}标签之间的html中使用sessionStorage变量吗?

回答

2

那么,答案是取决于... 这取决于您的项目的大小和范围,以及您想要在代码中使用的“整齐”。一个用于实验的简单测试项目与具有大量移动部件的大型LOB应用程序不同。

无论如何,为了保持“棱角分明”,你应该采取你所说的第一条路径,即制作一个服务,将数据保存到localStorage并注入并在需要此功能的控制器/组件上调用它。有一些模块可以编程到那里,也可以回退到cookie存储器或其他模块,但是我发现这根本不是必需的,因为本地/会话存储器在主流浏览器甚至移动设备上的支持时间相当长。见this

读你的第二个选项,只是让我的眼睛刺痛......而将无法正常工作,至少要等到他们发布1.6版本上(从内{{}}进行到window.getItem(调用...))他们已经删除了解析器的沙箱。无论如何,这是一个不好的做法,你应该避免它。

+0

非常感谢您的解释!项目不是很大,但这是一个政府服务,所以更好。 – Makz23

0

嗯,我认为你的服务写入存储没有问题。至于直接在HTML中使用存储变量,我认为最好将存储变量分配给您的控制器的$scope变量,因为您的$scope是暴露给视图的变量。

要操纵浏览器的存储,ngStorage是你最好的选择。