Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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 - Fatal编程技术网

Javascript 添加和从会话存储中检索

Javascript 添加和从会话存储中检索,javascript,angularjs,Javascript,Angularjs,我正在使用Angulars$window服务进行会话存储。我需要做的是将服务承诺的成功添加到sessionStorage中,以便它可以在整个应用程序中使用 以下是我一直在尝试的: $window.sessionStorage.setItem('promoImages',success); success是从服务返回的对象数组,在以下结构中: [{ promotion: {}, url: 'images/image1.png' }, {}, {}]; 因此,该结构应通过上面的行分

我正在使用Angulars$window服务进行会话存储。我需要做的是将服务承诺的成功添加到sessionStorage中,以便它可以在整个应用程序中使用

以下是我一直在尝试的:

$window.sessionStorage.setItem('promoImages',success);
success是从服务返回的对象数组,在以下结构中:

[{
  promotion: {},
  url: 'images/image1.png'
 },
 {},
 {}];
因此,该结构应通过上面的行分配给promoImages。但是,当我这样打印值时:

 $log.debug('Promo from session:'+JSON.stringify($window.sessionStorage.promoImages));
我得到以下信息:

Promo from session:"[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]"
如果我对成功数组和会话数组进行相同的移动,我会得到不同的结果-会话数组返回未定义的-为什么

 $log.debug('Success:'+JSON.stringify(success[0].url));
 // Returns url above
 $log.debug('Promo from session:'+JSON.stringify($window.sessionStorage.promoImages[0].url));
 // Returns undefined
关于会话存储,我做错了什么?sessionStorage只能添加到创建它的同一个文件中吗?(我不这么认为)

谢谢

编辑


感谢下面的人给出的答案-但我认为值得指出的是,在我的对象上使用stringify函数时,实际上在对象中添加了前斜杠,而不是空格…

您只能将字符串存储在SessionStorage中。在调用
setItem()之前对对象进行字符串化

发件人:

Storage.setItem 参数 键名 包含要创建/更新的密钥名称的DOMString

关键值 一个DOMString,包含要为正在创建/更新的密钥指定的值


您只能在sessionStorage中存储字符串,因此在存储它之前,首先执行stringify(),然后在检索时再次将其解析为JSON

保存时:

$window.sessionStorage.setItem("JsonObj", JSON.stringify([
   {url: ""},{},{}
]));
检索时:

JSON.parse($window.sessionStorage.JsonObj)[0].url

谢谢这个-这很有效-如果我能正确阅读文档会有帮助的!感谢您应该考虑使用索引XDB(我不确定是否有任何角度服务来处理它)@ Ginden可以提供一个很好的资源来阅读它吗?更多的是我自己的知识,因为上面是一个工作项目,在游戏中已经太晚了以至于不能改变它。