首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ionic中清除本地存储数据?

如何在ionic中清除本地存储数据?
EN

Stack Overflow用户
提问于 2015-08-03 19:41:32
回答 2查看 36.6K关注 0票数 7

这是我的代码。

代码语言:javascript
复制
$scope.logout=function(){
    localstorage.set('user_id', "");
    localstorage.set('access-token', "");
    localstorage.set('isUserTraverseColony', 0);
    localstorage.set('isStarted', 0);
    $window.localStorage.clear();
    $window.localStorage.removeItem(access-token);
    $ionicHistory.clearCache();
    $ionicHistory.clearHistory();
 };

我想从我的localStorage中删除access-token变量,当我使用

代码语言:javascript
复制
 $window.localStorage.clear();
 $window.localStorage.removeItem(access-token);

但这对我的应用程序不起作用。

这是我的本地存储工厂

代码语言:javascript
复制
angular.module('starter.controllers').factory('localstorage', ['$window', '$localStorage','$q', function ($window, $localStorage,$q) {
    return {
        set: function (key, value) {
             var deferred = $q.defer();
            $window.localStorage[key] = value;
                 deferred.resolve(1);
                 return deferred.promise;
        },
        get: function (key, defaultValue) {
            return $window.localStorage[key] || defaultValue;
        },
        setObject: function (key, value) {
            $window.localStorage[key] = JSON.stringify(value);
        },
        getObject: function (key) {
            return JSON.parse($window.localStorage[key] || '{}');
        }
    }

}]);

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-04 11:33:55

我以前也遇到过同样的问题。我为本地存储使用了一些全局变量。你的代码看起来没问题。但是你可以更好的优化它

代码语言:javascript
复制
$scope.logout = function(){
  $window.localStorage.clear();
    $ionicHistory.clearCache();
    $ionicHistory.clearHistory();
 };

您不需要设置

代码语言:javascript
复制
localstorage.set('user_id', "");
localstorage.set('access-token', "");
localstorage.set('isUserTraverseColony', 0);
localstorage.set('isStarted', 0);

因为你正在清除它们。

票数 6
EN

Stack Overflow用户

发布于 2015-08-03 20:04:35

您可以将clear()方法添加到自定义localstorage服务中:

代码语言:javascript
复制
angular.module('starter.controllers').factory('localstorage', ['$window', '$localStorage','$q', function ($window, $localStorage,$q) {
    return {
        set: function (key, value) {
            $window.localStorage.setItem(key, value);
        },
        get: function (key, defaultValue) {
            return $window.localStorage.getItem(key) || defaultValue;
        },
        setObject: function (key, value) {
            $window.localStorage.setItem(key, JSON.stringify(value));
        },
        getObject: function (key) {
            return JSON.parse($window.localStorage.getItem(key) || '{}');
        },
        clear: function () {
            $window.localStorage.clear();
        }
    }

}]);

注意:我更新了您的服务,删除了promise,因为 并使用标准的get和set方法

然后在你的控制器中:

代码语言:javascript
复制
$scope.logout = function(){
    localstorage.clear();
    $ionicHistory.clearCache();
    $ionicHistory.clearHistory();
 };
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31786302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档