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')); // 取出