gpt4 book ai didi

javascript - ngStorage AngularJS 从 sessionStorage 读取由另一个库保存的内容

转载 作者:行者123 更新时间:2023-12-03 06:40:54 26 4
gpt4 key购买 nike

在浏览器 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com