牛骨文教育服务平台(让学习变的简单)
博文笔记

localStorage的高级操作写法

创建时间:2016-07-19 投稿人: 浏览次数:616
define(function() {


  var storageUtil = {
  };


  var STORAGE_KEY = {
    PAGE_PARA : "page_parameter_v1"
  }

  storageUtil.get = function(key) {
    var store = localStorage.getItem(key);
    if (store) {
      try {
        store = JSON.parse(store);
      } catch (e) {
        store = undefined;
        this.remove(key);
      }
    }
    
    return $.Deferred().resolve(store || {}).promise();
  };
  
  storageUtil.set = function(key, value) {
    localStorage.setItem(key, JSON.stringify(value));
    return $.Deferred().resolve(value).promise();
  };
  
  storageUtil.put = function(key, value) {
    var me = this;
    return this.get(key)
    .then(function(data) {
      value = $.extend(data || {}, value || {});
      return me.set(key, value);
    });
  };
  
  storageUtil.remove = function(key) {
    localStorage.removeItem(key);
  };

  storageUtil.setParam = function(key, para) {
    var me = this;
    return this.get(STORAGE_KEY.PAGE_PARA)
    .then(function(data) {
      data = data || {};
      data[key] = para;
      return me.set(STORAGE_KEY.PAGE_PARA, data);
    });
  };
  
  storageUtil.putParam = function(key, para) {
    var me = this;
    return this.get(STORAGE_KEY.PAGE_PARA)
    .then(function(data) {
      data = data || {};
      data[key] = $.extend((data[key] || {}), para);
      return me.set(STORAGE_KEY.PAGE_PARA, data);
    });
  };
  
  storageUtil.getParam = function(key) {
    var me = this;
    return this.get(STORAGE_KEY.PAGE_PARA)
    .then(function(data) {
      data = data || {};


      return $.extend(data[key], storageUtil.getUrlParam());
    });
  };
  
  storageUtil.removeParam = function(key) {
    return this.setParam(key);
  };
  
  storageUtil.removeSubParam = function(key, subKey) {
    var me = this;
    return this.get(STORAGE_KEY.PAGE_PARA)
    .then(function(data) {
      if (data) {
        delete data[key][subKey];
        return me.set(STORAGE_KEY.PAGE_PARA, data);
      }
    });
  };


  storageUtil.getUrlParam = function(url) {
    var query = url || window.location.search;
    var start = query.indexOf("?");
    if (start > -1) {
      query = query.substring(start + 1);
    }


    var paras = {};
    if (query) {
      var queryParams = query.split("&");
      for ( var k in queryParams) {
        var param = queryParams[k].split("=");
        paras[param[0]] = decodeURIComponent(param[1]) || "";
      }
    }
    return paras;
  };
  
  return storageUtil;

});



//调用

例如:

//存储到localStorage
storageUtil.setParam("inputCDkey",{shareAgreedTo:shareAgreedTo});


storageUtil.getParam("inputCDkey").then(function(data) {
    var shareAgreedTo = data.shareAgreedTo;
    if(shareAgreedTo){
    $(".shade").hide();
    $scope.pickUpService = shareAgreedTo;
    }else{
    $(".shade").show();
    }
});


/

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。