【问题标题】:Why is angular cookies accepting only strings, but not numbers?为什么 Angular cookie 只接受字符串而不接受数字?
【发布时间】:2013-12-01 17:04:09
【问题描述】:

当我使用 Angular cookie 时,我发现 $cookies 只接受字符串并在设置时存储在浏览器的 cookie 中。即

如果我设置以下 cookie

$cookies.id = 12345;
$cookies.name = "Prasad";

在浏览器中只设置了 $cookies.name。所以我不得不把它改成

$cookies.id = "12345";

让它工作。

here 是显示演示的小提琴链接。

我尝试检查 angular 源代码以了解原因,发现他们故意检查值是否为 isString。

他们只接受字符串值有什么具体原因吗?我们不能只允许整数并在添加到浏览器 cookie 时转换为字符串。

谢谢!

【问题讨论】:

    标签: angularjs angular-cookies


    【解决方案1】:

    主要原因可能是 cookie 的值总是以字符串形式存储在浏览器中。当然,Angular 可以允许您在使用服务时将其保存为 int,然后在创建 cookie 之前将其转换,问题是人们会假设当他们稍后读取该 cookie 时,值仍然是 int (毕竟他们就是这样保存的)。

    它不会,它会是一个字符串。

    Angular 似乎认为(我个人同意)最好事先严格一些。强制输入与输出相同,这样人们在读取 cookie 时就不会误解他们会得到什么。

    【讨论】:

    • 理论上 Angular 可以将某些内容编码到字符串中,然后使用它来确定它以后应该如何返回数据,但是 $cookies 是一种原始的。它甚至不允许您在 cookie 上设置路径。
    • 嗯好吧!!但是我觉得如果 angularjs 允许而不是让开发人员手动将其转换为字符串(例如 id+'')并设置为 $cookies 会更直观。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多