如何在Ionic / AngularJs中使用结束时清洁服务



我有一个看起来像这样的服务(你可以看到它来自购物车。

我正在尝试使用按钮重置/删除此购物车(购买更多新商品"),以下新订单,但前一个订单的数量它继续,每当它发出新的购买订单时,与以前的订单数量相加。我正在尝试使用按钮重置/删除此购物车(购买更多新商品"),以下新订单,但前一个订单的数量它继续,每当它发出新的购买订单时,与以前的订单数量相加。

这是服务,所以正确的是在它结束时说使用:

angular.module('nhaac.services', [])

.factory('sharedCartService', ['$ionicPopup',function($ionicPopup){
// OKAY, MAS ONDE ELE ESTÁ PEGANDO?
// DECLARA AS VARIÁVEIS
var cartObj = {};
cartObj.cart=[];
cartObj.total_amount=0;
cartObj.total_qty=0;

// VERIFICA DE JÁ EXISTE ITENS NO CARRINHO
cartObj.cart.add=function(id,image,name,price,qty,supply_id,deliver){
if( cartObj.cart.find(id)!=-1  ){
var alertPopup = $ionicPopup.alert({
title: 'Este produto já foi Adicionado',
template: 'Acrescente mais quantidade abaixo da oferta no carrinho'   
});     
//        }if (CartObj, { 'cart_item_supply': supply_id}) {
}if (cartObj.cart.findvovo(supply_id) !=-1 ){    
var alertPopup = $ionicPopup.alert({
title: "Você só pode comprar de uma única Vovó por vez",
template: "Volte ao carrinho e escolha a opção COMPRAR MAIS DELICIAS."
});
}else{
cartObj.cart.push( { "cart_item_id": id , "cart_item_image": image , "cart_item_name": name , "cart_item_price": price , "cart_item_qty": qty, "cart_item_supply": supply_id, "cart_item_deliver": deliver  } );
cartObj.total_qty+=1;   
cartObj.total_amount+=parseInt(price);  
console.log(cartObj);
}
};

// PROCURA PRODUTOS NO CARRINHO PELO ID 
cartObj.cart.find=function(id){       
var result=-1;
for( var i = 0, len = cartObj.cart.length; i < len; i++ ) {
if( cartObj.cart[i].cart_item_id === id ) {
result = i;
console.log(result);
break;
}
}
return result;        
};
// PROCURA COD FORNECEDOR É IGUAL
cartObj.cart.findvovo=function(supply_id){    
var result=-1;
for( var i = 0, len = cartObj.cart.length; i < len; i++ ) {            
if( cartObj.cart[i].cart_item_supply === supply_id ) {            
result = i;
console.log('Qual Vovo achou '+result);
break;
}
};
return result; 
};

// CLEAN CART
cartObj.cart.drop=function(id){
var temp=cartObj.cart[cartObj.cart.find(id)];
cartObj.total_qty-= parseInt(temp.cart_item_qty);
cartObj.total_amount-=( parseInt(temp.cart_item_qty) * parseInt(temp.cart_item_price) );  
window.localStorage.removeItem("fonecedor_carrinho",cartObj.supply_id);    
cartObj.cart.splice(cartObj.cart.find(id), 1);
};
// ADD ITENS TO CART
cartObj.cart.increment=function(id){
cartObj.cart[cartObj.cart.find(id)].cart_item_qty+=1;
cartObj.total_qty+= 1;
cartObj.total_amount+=( parseInt( cartObj.cart[cartObj.cart.find(id)].cart_item_price) );  
};
// DIMINUI A QUANTIDADE DE ITENS NO CARRINHO
cartObj.cart.decrement=function(id){
cartObj.total_qty-= 1;
cartObj.total_amount-= parseInt( cartObj.cart[cartObj.cart.find(id)].cart_item_price) ;

if(cartObj.cart[cartObj.cart.find(id)].cart_item_qty == 1){  // if the cart item was only 1 in qty
cartObj.cart.splice( cartObj.cart.find(id) , 1);  //edited
}else{
cartObj.cart[cartObj.cart.find(id)].cart_item_qty-=1;
}
};

console.log('chama return');
return cartObj;
}])

您可以看到它来自购物车。

我正在尝试像这样删除此服务:

$scope.novoPedido = function () {

// CLEAN CART SHOP       
var cart = sharedCartService.cart;
sharedCartService.cart.splice(0, sharedCartService.cart.length);
//  sharedCartService.cart.drop("");
>> This dont work

//          $state.go('novopedido');
};

但是它不会删除数量,它只是清除项目,数量继续,如何删除所有内容,包括数量?我不知道该怎么做...

谢谢!

解决方法:

var cart = sharedCartService.cart;
sharedCartService.cart.splice(0, sharedCartService.cart.length);
sharedCartService.total_qty = 0;
sharedCartService.total_amount = 0;

相关内容

最新更新