当前位置: 首页 » 前端开发 » AngularJS中封装localStorage
 |  全屏浏览  |  字号调整:

AngularJS中封装localStorage

2016-10-27 16:02:30 前端开发 0 1.16 k 百度已收录
本文最后更新于2016-10-27,已超过 1年没有更新,如果文章内容、图片或者下载资源失效,请留言反馈,我会及时处理,谢谢!
历史上的今天:10月20日 - 1962年,中印边境自卫反击战爆发

周六晚上好, 本文除去代码部分,共1549个字,预计阅读时间需要4分钟。

如题,在项目中经常需要将一些数据存储在浏览器中,但又不想直接存cookie,于是用了localStorage。由于sessionStorage用不到,便没有一起封装。
顺便处理了在手机浏览器safari下,有些用户开启无痕浏览模式去访问网站,但是存储不了localStorage的情况,做了个异常处理提示。

好了,具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/**
 * 封装localStorage的方法
 */
angular.module("pharmacyApp").factory('locals', ['$window', function($window){
    return{
        set: function(key,value){ //存储单个属性
            // 判断是否无痕浏览模式
            if (typeof localStorage === 'object') {
                try {
                    $window.localStorage[key] = escape(value);
                } catch (e) {
                    alert('Your web browser does not support storing settings locally. In Safari, the most common cause of this is using "Private Browsing Mode". Some settings may not save or some features may not work properly for you.');
                }
            }
        },
        get: function(key){  //读取单个属性
            // 判断是否无痕浏览模式
            if (typeof localStorage === 'object') {
                try {
                    return unescape($window.localStorage[key]);
                } catch (e) {
                    alert('Your web browser does not support storing settings locally. In Safari, the most common cause of this is using "Private Browsing Mode". Some settings may not save or some features may not work properly for you.');
                }
            }
        },
        getParam: function(c){ //读取单个属性中的某个属性
            var cookieValue = this.get(c);
            var theRequest = {};
            if(cookieValue){
                if (cookieValue.indexOf("&") != -1) {
                    var str = cookieValue.split("&");
                    for (var i = 0; i < str.length; i++) {
                        theRequest[str[i].split("=")[0]] = str[i].split("=")[1];
                    }
                }else{
                    theRequest[cookieValue.split("=")[0]] = cookieValue.split("=")[1];
                }
                return theRequest;
            }else{
                return false;
            }
        },
        setObject: function(key,value){ //存储对象,以JSON格式存储
            $window.localStorage[key] = JSON.stringify(value);
        },
        getObject: function (key) {  //读取对象
            return JSON.parse($window.localStorage[key] || '{}');
        },
        remove: function(key){ //删除缓存
            $window.localStorage[key] = '';
            delete $window.localStorage[key];
        }
    }
}]);

以上代码如果有问题的话,欢迎留言讨论。谢谢。

本文标题:AngularJS中封装localStorage

本文地址:http://www.hehaibao.com/angularjs-localstorage/

版权声明:本博客所有文章除特别声明外,均采用 署名-非商业性使用-禁止演绎 4.0 国际 许可协议。请尊重他人的劳动成果!

3条评论
  • 富婆包男人 - 未知操作系统  |  未知浏览器

    2016-12-29 02:21

    顶一个!!!!

  • 索菲亚m.suofeiya.com - 未知操作系统  |  未知浏览器

    2016-11-01 17:16

    phone7 这年头竟可以捡漏!!

  • 工控资料窝 - 未知操作系统  |  未知浏览器

    2016-11-01 10:51

    收藏起来 以后再看


发表评论

电子邮件地址不会被公开。 必填项已用*标注