2017-05-17 17 views
1

我的問題可能會重複。但那些使用的是magento。每次點擊一個項目時,它都會被添加到cart.I需要刪除以前添加的項目,然後在角度js中添加新的`item`

在添加新項目之前,我需要幫助來刪除購物車中以前添加的項目。

現在究竟發生了什麼每次我點擊一個item,它增加了許多items.But我真正需要的只是最新的項目被添加到購物車。 這是我的代碼。

service.js

.factory('CartService', [function() { 
var svc = {}; 
svc.saveCart = function(cart){ 
window.localStorage.setItem('cart', JSON.stringify(cart)); 
}; 
svc.loadCart = function(){ 
var cart = window.localStorage.getItem('cart'); 
if(!cart){ 
return { products : [ ] } 
} 
return JSON.parse(cart); 
}; 
svc.resetCart = function(){ 
var cart = { products : [ ] }; 
svc.saveCart(cart); 
return cart; 
}; 

svc.getTotal = function(cart){ 
var out = 0; 
if(!cart || !cart.products || !angular.isArray(cart.products)){ 
return out; 
} 
for(var i=0; i < cart.products.length; i++){ 
out += cart.products[i].price; 
} 
return out; 
} 
return svc; 
}]) 

controller.js

.controller('FoodCtrl', function($scope,$state,mySharedService,  $ionicActionSheet, BackendService, CartService) { 

$scope.cart = CartService.loadCart(); 

$scope.doRefresh = function(){ 
    BackendService.getFood() 
    .success(function(newItems) { 
    $scope.products = newItems; 
    }) 
    .finally(function() { 
    $scope.$broadcast('scroll.refreshComplete'); 
    }); 
    }; 

    var addProductToCart = function(product){ 
    $scope.cart.products.push(product); 
    CartService.saveCart($scope.cart); 
    }; 

    $scope.addProduct = function(product){ 
    $ionicActionSheet.show({ 
    buttons: [ 
    { text: '<b>Add to produce</b>' } 
    ], 
    titleText: 'add to cart ' + product.itemName, 
    cancelText: 'Cancel', 
    cancel: function() { 
     // add cancel code if needed .. 
    }, 
    buttonClicked: function(index) { 
    if(index == 0){ 
     addProductToCart(product); 
     return true; 
    } 
    return true; 
    } 
    }); 
    }; 

任何響應大大有益的。

謝謝。

+0

所以每次你添加產品要刪除以前的產品一車? – warl0ck

+0

是的,我需要刪除以前的產品 – Hema

+0

只有當前添加的項目應該在購物車 – Hema

回答

2

爲了做到這一點首先檢查,如果數組爲空,如果不只是清空

像:

if ($scope.cart.products.length !== 0) { 
    $scope.cart.products= []; 
    $scope.cart.products.push(product); 
} else { 
    $scope.cart.products.push(product); 
} 
相關問題