Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在不每次转换对象的情况下高效地将数据存储在离子本地存储器中?_Javascript_Angularjs_Ionic Framework_Local Storage - Fatal编程技术网

Javascript 如何在不每次转换对象的情况下高效地将数据存储在离子本地存储器中?

Javascript 如何在不每次转换对象的情况下高效地将数据存储在离子本地存储器中?,javascript,angularjs,ionic-framework,local-storage,Javascript,Angularjs,Ionic Framework,Local Storage,每次我们需要存储一个对象时,我们都需要执行JSON.stringify 在Ionic和AngularJS中有没有一种有效的方法可以做到这一点 我使用的代码是: $window.localStorage[key] = value; 执行上述操作的最有效方法是创建一个工厂,然后访问它: (function(){ 'use strict'; var yourApp = angular.module('yourApp'); yourApp.factory('$localSt

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

Ionic
AngularJS
中有没有一种有效的方法可以做到这一点

我使用的代码是:

$window.localStorage[key] = value;

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

(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

   }
 })()

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

(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

   }
 })()