【问题标题】:Angularjs localstorage with object带有对象的Angularjs本地存储
【发布时间】:2016-05-25 08:27:13
【问题描述】:

我需要将 json 对象存储到 angularjs 本地存储中。在我的情况下,当从 GCM 收到推送通知时,我需要将其存储到本地存储对象中,并且需要在一个单独的页面中显示,我已通过以下代码完成此操作

var sessionmessages = [];
var notification = {
    "local": "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "ldata": {
        "Nick": "Mario",
        "body": "great match!",
        "Room": "PortugalVSDenmark"
    }
    };
    sessionmessages.push(notification);

    var notification1 = {
    "server": "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "sdata": {
        "Nick": "Mario",
        "body": "great match!",
        "Room": "PortugalVSDenmark"
    }
};
sessionmessages.push(notification1);
$localstorage.set('mrksesionnotifi', sessionmessages);
console.log($localstorage.getObject('mrksesionnotifi')); // error like Uncaught SyntaxError: Unexpected token o in JSON at position 1

我的工厂如下图,

.factory('$localstorage', ['$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) {
      return JSON.parse($window.localStorage[key] || '{}');
    }
  }
}])

但是当我将对象数组存储到本地存储中时,我无法取回它,出现类似错误(未捕获的语法错误:位置 1 处 JSON 中的意外标记 o)。请帮助任何人获得预期的结果。

【问题讨论】:

标签: javascript angularjs json ionic-framework


【解决方案1】:
var sessionmessages = [];
var notification = {
    "local": "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "ldata": {
        "Nick": "Mario",
        "body": "great match!",
        "Room": "PortugalVSDenmark"
    }
};
sessionmessages.push(notification);

var notification1 = {
"server": "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"sdata": {
    "Nick": "Mario",
    "body": "great match!",
    "Room": "PortugalVSDenmark"
    }
};
sessionmessages.push(notification1);
$localstorage.setItem('mrksesionnotifi', sessionmessages);
console.log($localstorage.getItem('mrksesionnotifi'));

试试这个代码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 2015-12-05
    • 1970-01-01
    • 2011-08-21
    相关资源
    最近更新 更多