javascript - 从 sessionStorage 添加和检索

标签 javascript angularjs

我正在为 sessionStorage 使用 Angulars $window 服务。我需要做的是将服务 promise 的成功添加到 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]"

如果我对成功数组和 session 数组执行相同的操作,我会得到不同的结果 - session 数组返回 undefined - 为什么?

 $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 方面做错了什么? sessionStorage 只能添加到创建它的同一个文件中吗? (我不这么认为)。

谢谢

编辑

感谢下面的人的回答 - 但我认为值得指出的是,在我的对象上使用 stringify 函数时,实际上是在对象中添加了正斜杠来代替空格...

最佳答案

您只能在 SessionStorage 中存储字符串。在调用 setItem()

之前将您的对象字符串化

来自 MDN :

Storage.setItem

Parameters

key name

A DOMString containing the name of the key you want to create/update.

key value

A DOMString containing the value you want to give the key you are creating/updating.

关于javascript - 从 sessionStorage 添加和检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27692043/

相关文章:

javascript - 选择元素的子集,并将它们包装在 div 中

javascript - 在jquery中获取对象值的问题

java - 是否可以将 AngularJs 包含到带有 Gradle 的项目中

AngularJS - 过滤数据时更新.length

php - 如何使用Angularjs在mysql中获取特定id的数据

javascript - 显示多个图像 - javascript

javascript - 在 Mobile Safari 中预加载 HTML5 音频

javascript - .on() 的有效 jQuery 代码如何与 API 文档相匹配?

javascript - AngularJS 中的文档 getelementbyid 选项 selectedindex

javascript - 如何在 AngularJS 中创建完整的 html 表?