【问题标题】:how to save my cart in cookies and update it in cookies如何将我的购物车保存在 cookie 中并在 cookie 中更新
【发布时间】:2015-09-29 09:21:12
【问题描述】:

我有 AngularJS 购物车。我正在尝试将我所有的购物车都保存在 cookie 中,但我遇到了问题。当我刷新页面时,我的旧购物车被删除。如果产品已经在购物车中,我想更新数量,或者如果不在购物车中,我想将其放入 cookie 中。这是我的代码:

 $scope.cart = [];
            $scope.cartList = [];
            $scope.addToCart = function (car, quantity) {
                if (car.toCartQty > car.quantity) {
                    alert("The quantity is not available");
                    return false;
                }
                var isInCart = false;
                var myIndex = -1;
              
                if (!$cookieStore.get('cook')) {
                    $cookieStore.put('cook', $scope.cart)

                }
                
                _.find($scope.cart, function (val, i) {
                    console.log($scope.cart[i]);
                    if ($scope.cart[i].id == car.id) {
                        myIndex = i;
                        isInCart = true;

                    }
                })


                console.log('index', myIndex, isInCart);
                if (isInCart == true) {
                    car.quantity = car.quantity - car.toCartQty;
                    $scope.cart[myIndex].qty = $scope.cart[myIndex].qty + parseInt(car.toCartQty);
                } else {
                    car.qty = parseInt(car.toCartQty);
                    car.quantity = car.quantity - car.toCartQty;
                    $scope.cart.push(car);

                }
                
                car.toCartQty = 0;
                $cookieStore.put('cook', $scope.cart);

            };
            

            $scope.readCookie = function () {

                $scope.cartNew = $cookieStore.get('cook');
                console.log($scope.cartNew)
            };
            $scope.removeCart = function () {
                $cookieStore.remove('cook');
            }

【问题讨论】:

    标签: angularjs cookies


    【解决方案1】:

    你可以使用angularjs-locker:

    将储物柜添加到您的项目并将其注入您的控制器:

    yourController.$inject = ['locker'];
    function yourController('locker')
    {
        //when you want save a data
        locker.put('nameOfVariable', value);
        //when you get data
        locker.get('nameOfVariable');
        //To create or recover your variable (cart)
        if(locker.get('cartList') == null)
        {
            $scope.cartList = [];
        }
        else
        {
            $scope.cartList = locker.get('cartList');
        }
    }
    

    我遇到了同样的问题,我用储物柜解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-02
      • 1970-01-01
      • 2020-01-23
      • 1970-01-01
      • 2019-04-29
      相关资源
      最近更新 更多