2016-03-18 17 views
0

Angularjs içinde cookie nesnesini $ cookies'tan kaldırmak ve düzenlemekle ilgili bir sorunum var. Bir mağaza yapmak istiyorum ve putObject işleviyle $ cookies global değişkenine ürün ekliyorum (koymama kullanmadım çünkü birden fazla argümanım var). Ürünü mağazadan kaldırmak ve düzenlemek için işlev eklemek ve çerezden yalnızca bir nesneyi kaldırmak ve düzenlemek istiyorum. Lütfen bana yardım et! Bu aradığınız budurAngularjs dosyasındaki çerezler nasıl kaldırılır ve düzenlenir

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

Merhaba, şimdi bir hatayla karşılaşıyorsunuz, sadece çalışıyor ya da nasıl yapılacağını öğrenmek istiyor musunuz? Saygılarımızla! –

+0

Birçok yönden bunu yapmaya çalışıyordum, ama benim için çalışmıyor ve hiçbir sonuç almadım :(Bunu nasıl yapacağımı bilmek isterim :) – johnpol23

cevap

0

Hope: Burada

benim kod (I 'ürünlerin çerezinden/düzenle nesnesini kaldırmak istediğiniz) bir parçasıdır.

Ben senin koduna göre küçük bir test yaptık (basitleştirilmiş):

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

    }; 

} 

Bir çerezinden veri eklemek ve nasıl alınacağını burada görebilirsiniz.

Bu plunkr içinde çalışmakta olduğunu görebilirsiniz. Bu yardımcı olur

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

Umut.

Saygılar!

+0

Farklı bir şey arıyordum ama çözüyorum benim sorun :) Yardımınız için teşekkürler ve cevap! – johnpol23

İlgili konular