angularjs/ionic本地数据存储localStorage

localStorage可以用来做数据缓存,加快页面的加载速度,或者存储用户信息,token之类的验证信息,而且可以在多个controller中共享数据。

1、使用factory创建服务:

app.factory('locals', ['$window', function ($window) {
    return {
        set:function(key, value){
            $window.localStorage[key] = value; // 字符串存储
        },
        get:function(key, defaultValue){
            return $window.localStorage[key] || defaultValue;
        },
        setObject:function(key, value){
            $window.localStorage[key] = JSON.stringify(value); // 将对象以字符串保存
        },
        getObject:function(key, defaultValue){
            if($window.localStorage[key]){
                return JSON.parse($window.localStorage[key]); // 获取字符串并解析成对象
            }
            return defaultValue;
        }
    }
}]);

2、在controller中传入参数:

app.controller('MyCtrl', function($scope, $ionicLoading, $http, locals) {
// .....
});

3、在controller中直接调用:

locals.set('user', {}); // 存入
console.log(locals.get('user')); // 取出

 

发表评论