2

我正在使用離子框架爲學校做一個應用程序。該應用程序是針對餐廳的請求。<ion-item>刪除時保留相同的參數

我有一個模式顯示我的請求,從本地存儲列出我請求的項目。

問題是,當我先刪除最下面的項目時,它會正確執行,刪除應該的價格。 但是如果我首先刪除最上面的項目,則第二項自帶的第一個的參數:

<ion-item ng-repeat="entradasPedido in entradasPedidos track by $index" class="item item-thumbnail-left "> 
    <img src="{{entradasPedido.url}}"> 
    <h2>{{entradasPedido.name}}</h2> 
    <p>Esta entrada fica por {{entradasPedido.price}} €</p> 
    <span class="badge badge-assertive">{{entradasPedido.quantidade}} und.</span> 
    <ion-option-button class="button-dark" 
    ng-click="showPopupEditEntradas($index, {{entradasPedido.id}}, {{entradasPedido.quantidade}})"> 
    Alterar</ion-option-button> 
    <ion-option-button class="button-assertive" 
    ng-click="showPopupApagarEntradas($index, {{entradasPedido.price}}, {{entradasPedido.quantidade}})"> 
    Apagar</ion-option-button> 
</ion-item> 
$scope.showPopupApagarEntradas = function(id, price, quant) { 
    var confirmPopup = $ionicPopup.confirm({ 
    title: 'Tem a certeza que quer remover?', 
    template: 'Pode adicionar novamente se desejar.' 
    }); 
    confirmPopup.then(function(res) { 
    if(res) { 
     StorageServiceEntradas.remove(id); 
     var total = price * quant; 
     var total1 = parseFloat($localstorage.get('preco_final')) - parseFloat(total); 
     console.log($localstorage.get('preco_final') + " - " + total + " = " + total1); 

     $localstorage.set('preco_final', total1.toFixed(2)); 
     $scope.reloadDataModal(); 
    } else { 
     console.log('You are not sure'); 
    } 
    //confirmPopup.close(); 
    }); 
}; 

圖像與例如:

Image

回答

0

您正在使用變量$index

ng-repeat="entradasPedido in entradasPedidos track by $index 

作爲id參數的函數:

function showPopupApagarEntradas(id, price, quant) 

ngRepeat official documentation從,$index表示:

迭代重複元件(0..length-1)

的偏移

這與StorageServiceEntradas中包含的物品的標識符沒有任何關係。看來你必須撥打showPopupApagarEntradas(entradasPedido.id, etc.)

相關問題