【问题标题】:How to efficiently store data in Ionic local storage without converting object each time?如何在不每次转换对象的情况下有效地将数据存储在 Ionic 本地存储中?
【发布时间】:2017-06-09 01:27:58
【问题描述】:

每次我们需要存储一个对象时,我们都需要做一个JSON.stringify

IonicAngularJS 中是否有有效的方法来执行此操作?

我使用的代码是:

$window.localStorage[key] = value;

【问题讨论】:

    标签: javascript angularjs ionic-framework local-storage


    【解决方案1】:

    执行上述操作最有效的方法是创建一个factory,然后访问它:

    (function(){
        'use strict';
    
        var yourApp = angular.module('yourApp');
    
        yourApp.factory('$localStorage', ['$window', function($window) {
              return {
                    store: function(key, value) {
                      $window.localStorage[key] = value;
                    },
                    get: function(key, defaultValue) {
                      return $window.localStorage[key] || defaultValue;
                    },
                    storeObject: function(key, value) {
                      $window.localStorage[key] = JSON.stringify(value);
                    },
                    getObject: function(key,defaultValue) {
                      return JSON.parse($window.localStorage[key] || defaultValue);
                    }
                  }
                }])
    })()
    

    那么它可以在控制器中使用,如:

    (function(){
       var app = angular.module('yourApp');
       var appCtrl = app.controller('AppCtrl', AppCtrl);
    
       appCtrl.$inject = ['$localStorage'];
    
       function appCtrl($localStorage){
           $localStorage.get("yourVariable");
           $localStorage.getObject("yourObject");
    
           $localStorage.set("yourVariable");
           $localStorage.setObject(yourObject); //can be a JSON object
    
       }
     })()
    

    【讨论】:

      猜你喜欢
      • 2015-06-19
      • 2021-10-24
      • 2020-02-04
      • 1970-01-01
      • 2021-08-13
      • 1970-01-01
      • 2021-09-24
      • 1970-01-01
      • 2018-03-05
      相关资源
      最近更新 更多