【问题标题】:How to remove and edit object from cookies in angularjs如何从 angularjs 中的 cookie 中删除和编辑对象
【发布时间】:2016-03-19 23:47:13
【问题描述】:

我在 angularjs 中从 $cookies 中删除和编辑 cookie 对象时遇到问题。我想开一家商店,我正在使用 putObject 函数将产品添加到 $cookies 全局变量(我没有使用 put,因为我有多个参数)。我想添加功能以从商店中删除和编辑产品,并从 cookie 中仅删除和编辑一个对象。请帮帮我!

这是我的代码片段(我想从“产品”cookie 中删除/编辑对象):

app.controller('Store', ['$scope', '$cookies', 'x2js', '$http', 
    function($scope, $cookies, x2js, $http){

    this.products = $cookies.getObject('products');

    if(!this.products) {
        var self = this;
        $http.get('assets/xml/products.xml').success(function(data) {
            self.products = data.products.product;

            for(var i = 0; i < self.products.length; i++) {
                self.products[i].id = parseInt(self.products[i].id);
                self.products[i].netto = self.products[i].netto + '.00';
                self.products[i].tax = parseInt(self.products[i].tax);
                self.products[i].brutto = parseFloat(self.products[i].brutto);
                self.products[i].rating = parseInt(self.products[i].rating);
            };
        });
    }

    $scope.product = $cookies.getObject('product') || {};

    $scope.$watch('product', function() {
        $cookies.putObject('product', $scope.product);
    }, true);

    this.addProduct = function() {
        if(this.countCategories() >= 2) {
            if(this.validateForm()) {

                var product = {
                    id: this.products.length + 1,
                    name: $scope.product.name,
                    code: $scope.product.code,
                    image: $scope.product.image,
                    netto: this.intToFloat($scope.product.netto, 2),
                    tax: $scope.product.tax,
                    brutto: this.calculatePriceBr(),
                    rating: parseInt(this.ratingChecked()),
                    category: this.categoryChecked(),
                    option: this.optionChecked(),
                    selected: $scope.product.selected
                };

                this.products.push(product);

                $scope.product = {};

                $cookies.putObject('products', this.products);

                $('#product-add').modal('hide');
                return true;
            } else {
                return;
            }
        } else {
            return;
        }
    };
 })();

【问题讨论】:

  • 您好,您现在遇到一个错误,它只是在工作,或者想知道如何操作?问候!
  • 我试图通过多种方式做到这一点,但它对我不起作用而且我没有任何结果:(我想知道该怎么做:)

标签: javascript angularjs cookies


【解决方案1】:

希望这就是你要找的。​​p>

我根据你的代码做了一个小测试(简化):

var app = angular.module('myApp', ['ngCookies']);


app.controller('Store', Store);


Store.$inject = ['$scope', '$cookies', '$http'];

function Store($scope, $cookies, $http) {

  var vm = this;
  vm.products = [];
  vm.cart = [] ;
  vm.inCookie =[];

  $http.get('products.xml').success(function(data) {
    vm.products = data;

    for (var i = 0; i < vm.products.length; i++) {
      vm.products[i].id = parseInt(vm.products[i].id);
      vm.products[i].netto = vm.products[i].netto + '.00';
      vm.products[i].tax = parseInt(vm.products[i].tax);
      vm.products[i].brutto = parseFloat(vm.products[i].brutto);
      vm.products[i].rating = parseInt(vm.products[i].rating);
    };
  });


  this.addProduct = function(row) {


    vm.cart.push(row);


    $cookies.put('cart', JSON.stringify(vm.cart));

    vm.inCookie = JSON.parse($cookies.get('cart'));

  };

}

您可以在此处查看如何从 cookie 添加和检索数据。

在这个 plunkr 中,您可以看到它正在工作。

https://plnkr.co/edit/ew1ePjzbMxjAqtgx8hzq?p=preview

希望这会有所帮助。

问候!

【讨论】:

  • 我一直在寻找不同的东西,但我解决了我的问题 :) 感谢您的帮助和回复!
猜你喜欢
  • 2016-09-04
  • 1970-01-01
  • 2011-03-07
  • 1970-01-01
  • 2015-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-19
相关资源
最近更新 更多