2016-03-18 13 views
0

angularjsの$ cookiesからクッキーオブジェクトを削除および編集する際に問題があります。私は店を作りたいと思うし、putObject関数を使って$ cookiesグローバル変数に商品を追加しようとしている(複数の引数があるのでputを使わなかった)。私は店から商品を取り出したり編集したり、クッキーから1つのオブジェクトだけを取り出したり編集したりする機能を追加したいと思っています。私を助けてください!ここでangularjsのクッキーからオブジェクトを削除および編集する方法

は(私は「製品のクッキーから/編集オブジェクトを削除したい)私のコードの断片である:

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')); 

    }; 

} 

あなたはクッキーからのデータを追加して取得する方法をここで見ることができます。

このplunkrでは、動作していることがわかります。

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

は、この情報がお役に立てば幸いです。

よろしくお願いいたします。

+0

私は別のものを探していましたが、私の問題:)あなたの助けと返信ありがとう! – johnpol23

関連する問題