- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在浏览器 session 存储中我们有
`mykey` `myvalue`
其中 mykey 位于 session 存储部分的 Key 列中和其中 myvalue 位于 session 存储部分的值列中一切都清楚了。
ngStorage(一个 AngularJS 模块)在项目中实现并且工作正常 - 写入和读取由 ngStorage 写入的值。然而,它存储的值(value)并不像
mykey myvalue
但是作为
ngStorage-mykey "myvalue"
(他做了两件不同的事情 - 添加前缀 ngStorage-
并用“”包装 myvalue)。
问题是:如何通过 ngStorage 读取由另一个(不是 AngularJS 模块)保存的 session 值?
因此,$sessionStorage.mykey
根本无法获取不是由 ngStorage 保存的 myvalue
。
无需黑客就可以用其他任何东西更改前缀 ngStorage- ,但另一个问题是“”包装器。
那么,有什么想法如何通过 ngStorage 读取不是由 ngStorage 设置的值(这意味着没有任何前缀 prefix 并且不被 ""包裹)?
同样,默认情况下,如果您想通过 $sessionStorage.message = "Hello World"; 保存 Hello World
文本。那么 ngStorage 将默认添加前缀(可能会更改),并将“”添加到值中,如下所示:
ngStorage-message
“Hello World”
但我需要阅读消息
Hello World
有什么想法可以做到这一点吗?
最佳答案
默认情况下,ngStorage 使用的序列化器/反序列化器是 Angular.toJson/Angular.fromJson。这可以通过提供商进行配置。
angular.toJson 会用“.”包裹一个字符串
您可以在注入(inject) $sessionStorageProvider 后在模块配置中执行此操作,
$sessionStorageProvider.setKeyPrefix('');
$sessionStorageProvider.setSerializer(mySerializer);
$sessionStorageProvider.setDeserializer(myDeserializer);
function mySerializer(obj) {
if(angular.isObject(obj)) {
return angular.toJson(obj);
}
return obj;
}
function myDeserializer(str) {
if(str && str.charAt(0) === '"') {
return angular.fromJson(str);
}
return str;
}
关于javascript - ngStorage AngularJS 从 sessionStorage 读取由另一个库保存的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37966221/
我一直在做一些关于 cookie、sessionStorage、localStorage 的研究,但对 $sessionStorage 的了解很少。 在开发者工具中哪里可以查看 $sessionSto
我正在尝试使用 sessionStorage 中的“isCollapse”变量来减少导航栏。通过单击该按钮,我的 sessionStorage 会发生变化,但渲染不会更新。 JSX Code {
我有一个单页 AngularJS 应用程序,并通过 websockets 不使用 cookie 来验证我的网站。这意味着刷新会使用户注销。将密码存储在 sessionStorage 上以便它们可以在
我在 ASP.NET MVC 应用程序的布局页面中有以下 JavaScript 代码,用于将用户的浏览器范围 ID 存储为 cookie,以便我可以访问服务器端 session 中相应用户的信息。
我不明白 sessionStorage 是如何工作的。我希望仅在初始页面加载时发生一个事件。 我(尝试)通过检查 session 是否是新的来做到这一点。想法如下: $(function() {
我有这段JS: $('.go-to-bag').click(function () { var productId = $(this).parent().attr('id'); var product
我有这样的代码: Some Some 1 Some 2 Some 3 Some 4
我有一个 javascript 函数,每当特定 select 发生更改时,就会进行 3 个 ajax Json 调用,并填充 3 个 sessionStorage 项,这些项用于创建动态下拉菜单。 /
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 7 年前。 Improve th
我有包含此函数和代码的 PHP 文件: var values7 = ; var value7 = new Array; var time
这是我的代码: sessionStorage.loggedIn = true; if (sessionStorage.loggedIn) { alert('true')
我想知道如何从我的自定义方法中访问 native sessionStorage 范围。 我的例子: https://jsfiddle.net/3mc7ao7j/1/ 在第 3 行,我希望能够在对数据执
我试图实现这段代码,但在我的控制台中它说 thing is null 这很奇怪,因为当我查看控制台时,sessionStorage 不是空的...... $(".btn-alert").click(f
根据我对 Web 存储的(贫乏)理解,sessionStorage 对象是按选项卡维护的,它在页面重新加载和页面导航后仍然存在,并且在选项卡关闭或浏览器进程终止时被销毁。 有没有办法监听 sessio
我正在使用 sessionStorage 来确保每个 session 只发生一次操作。但是,如果用户打开一个新窗口 - sessionStorage 不会转移到新窗口,并且会再次执行该操作。请参阅下面
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
在我的网络表单上,我使用 sessionStorage HTML5 的功能可以存储表单中的值,然后将它们显示在“谢谢”页面上,作为查询的确认收据。 我已成功存储除 之外的每种输入类型的值。元素。 我
我是 HTML5/Javascript 新手,我认为有一个概念问题。我使用 Aptana 作为我的环境,它使用 FireFox 进行浏览器调试。 这是有问题的代码: var req = new Con
在下面的示例中(在 jsfiddle 中,依赖于 requirejs),控制台第一次输出 theUsername 和 http://nothing&username=null ,然后如果您再次运行它,
Login.vue是我设置sessionStorage的地方 sessionStorage.setItem('accessToken', response.data.response.accessTo
我是一名优秀的程序员,十分优秀!