在 angular 中使用 sessionStorage 的最佳方式
Best way to use sessionStorage in angular
我是 AngularJS 的新手,我尝试实现一个尽可能干净的小型 Ionic 应用程序。
我的应用程序包含一个用于登录的控制器,它将登录的用户存储在 $rootScope 中,但我了解到使用 $rootScope 并不是在控制器之间共享变量的好习惯。
所以我想使用 sessionStorage 和 localStorage,但我想知道关于它的最佳实践是什么:
我的 ServiceLogin 服务应该直接写入存储还是将数据发送到成为唯一可以写入存储的控制器?
Can/Should 我在{{ }}标签之间的html中直接使用sessionStorage变量?
嗯,我认为你的服务写入存储是没有问题的。至于直接在 HTML 中使用存储变量,我认为最好将存储变量分配给控制器的 $scope
变量,因为你的 $scope
是暴露给视图的变量。
要操纵浏览器的存储,ngStorage 是你最好的选择。
好吧,答案取决于...
这取决于您的项目的大小和范围,以及您希望使用代码的 "tidy"。仅用于试验的简单测试项目与具有大量活动部件的大型 LOB 应用程序不同。
无论如何,要成为"angularish"你应该走你所说的第一个路径,即制作一个服务,将数据保存到localStorage并注入它并在controllers/components上调用它需要这个功能。那里编程的一些模块也可以回退到 cookie 存储或其他,但我发现这根本没有必要,因为 local/session 存储在主要浏览器上支持了很长时间,甚至是移动浏览器。参见 this。
阅读你的第二个选项只会让我的眼睛刺痛……而且不会起作用(从 {{}} 内部调用 window.getItem(...)),至少在它们发布之前是这样1.6 版本他们已经删除了解析器的沙箱。无论如何,这是一个不好的做法,你应该避免它。
我是 AngularJS 的新手,我尝试实现一个尽可能干净的小型 Ionic 应用程序。
我的应用程序包含一个用于登录的控制器,它将登录的用户存储在 $rootScope 中,但我了解到使用 $rootScope 并不是在控制器之间共享变量的好习惯。
所以我想使用 sessionStorage 和 localStorage,但我想知道关于它的最佳实践是什么:
我的 ServiceLogin 服务应该直接写入存储还是将数据发送到成为唯一可以写入存储的控制器?
Can/Should 我在{{ }}标签之间的html中直接使用sessionStorage变量?
嗯,我认为你的服务写入存储是没有问题的。至于直接在 HTML 中使用存储变量,我认为最好将存储变量分配给控制器的 $scope
变量,因为你的 $scope
是暴露给视图的变量。
要操纵浏览器的存储,ngStorage 是你最好的选择。
好吧,答案取决于... 这取决于您的项目的大小和范围,以及您希望使用代码的 "tidy"。仅用于试验的简单测试项目与具有大量活动部件的大型 LOB 应用程序不同。
无论如何,要成为"angularish"你应该走你所说的第一个路径,即制作一个服务,将数据保存到localStorage并注入它并在controllers/components上调用它需要这个功能。那里编程的一些模块也可以回退到 cookie 存储或其他,但我发现这根本没有必要,因为 local/session 存储在主要浏览器上支持了很长时间,甚至是移动浏览器。参见 this。
阅读你的第二个选项只会让我的眼睛刺痛……而且不会起作用(从 {{}} 内部调用 window.getItem(...)),至少在它们发布之前是这样1.6 版本他们已经删除了解析器的沙箱。无论如何,这是一个不好的做法,你应该避免它。