javascript - 添加新cookie时旧cookie消失

标签 javascript angularjs cookies

我正在尝试添加cookie。它工作得很好,但是当我刷新页面并添加新的 cookie 时,旧的 cookie 消失,并且 cookies.length 不更新。我刷新页面后它会更新。这是我的代码

vm.cart = [];
vm.add = function(tensp,gia,img){
                    vm.cart.push({tensp:tensp,gia:gia,img:img,sl:1})
                    $cookies.putObject('cart',vm.cart);

        }

并以html形式显示。

 vm.cookies = $cookies.getObject('cart');
{{vm.cookies.length}}

我哪里错了。请帮我 。这是我的 plnkr https://plnkr.co/edit/StURuPuEBr8ykIUPdvBV?p=preview

最佳答案

每当您刷新页面时。 vm.cart 将设置为 []。当您点击“添加”时,一件商品将被添加到 vm.cart 中。 vm.cart 现在包含一项。当 vm.cart 放入 cookie 时,cookie 中的所有现有项目都将被覆盖。

如果您想将所有项目保留在 Cookie 中,请将项目直接放入 Cookie 并直接从 Cookie 中检索项目,如下所示

var item = {
  id: id,
  masp: masp,
  tensp: tensp
};

var cart = $cookies.getObject('cart');

if (cart) {
  var items = JSON.parse(cart);
  items.push(item);

  $cookies.putObject('cart', JSON.stringify(items));
} else {
  $cookies.putObject('cart', JSON.stringify([ item ]));
}

这是一个demo .

关于javascript - 添加新cookie时旧cookie消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43534038/

相关文章:

javascript - 如何使用 Angular 正确实现 post

asp.net - 共享 ASP.NET_SessionId 和 .ASPXAUTH cookie 安全风险

javascript - 尝试与 window.onload 一起执行两个 JavaScript 文件

javascript - 获取过滤器来处理 promise 的服务

javascript - 让本地 HTML5 视频在 Meteor 生成的 iOS 应用程序中工作

jquery - AngularJS 服务的返回值

asp.net - 在 ASP.NET 中实现 "Remember me"功能

cookies - Google Ads 不支持 HTTPS。有哪些替代方案?

javascript - 强类型的 typescript 集合

javascript - 给 JavaScript 文件一个不同的扩展名。