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

How to clean a Service at the end of his use in Ionic / AngularJs

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

我正在尝试 reset/remove 这个带有按钮(购买更多新商品")的购物车,以制作新订单,但之前订单的数量仍在继续,并且每当它进行新购买时订单,与之前的订单相加 quantity.I 我正在尝试 reset/remove 这个带有按钮(购买更多新商品”)的购物车,以制作新订单,但之前订单的数量仍在继续,并且每当它发出新的买单时,与之前的订单数量相加。

这是服务所以正确的说法是在它的末尾使用:

    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;