2016-03-18 47 views
0

我在从angularjs中的$ cookie中删除和编辑cookie对象时遇到问题。我想创建一个商店,并且使用putObject函数将商品添加到$ cookie全局变量中(因为我有多个参数,所以我没有使用put)。我想添加功能从商店删除和编辑产品,并从Cookie中删除和编辑一个对象。请帮帮我!如何从angularjs中的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; 
     } 
    }; 
})(); 
+0

嗨,你现在得到一个错误,它只是在工作,或想知道如何去做?问候! –

+0

我想在很多方面做到这一点,但它不适合我,我没有任何结果:(我想知道如何去做:) – johnpol23

回答

0

希望这是你在找什么。

我会根据您的代码,一个小测试(简体):

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

希望这有助于。

问候!

+0

我正在寻找不同的东西,但我解决我的问题:)感谢您的帮助和答复! – johnpol23