【发布时间】: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)。请帮助任何人获得预期的结果。
【问题讨论】:
-
您实现了
setObject将对象写入localStorage,但您使用的是普通的set方法,它无法正确写入对象 -
试试这个模块的本地存储,amitavroy.com/justread/content/articles/…
标签: javascript angularjs json ionic-framework