2016-03-18 124 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