1
I would like when clicking the "Continue Ordering" button to pick up only the items with Quantity > 0, store in an array of new objects.
My View:
<ion-view view-title="Comprar Bebidas Adicionais" hide-nav-bar="false" >
<ion-content delegate-handle="top" lazy-scroll id="lista-bebidas" class="has-header lista-bebidass" ng-controller="exBebidasCtrl" >
<ion-refresher pulling-text="Puxe para atualizar..." on-refresh="doRefresh()"></ion-refresher>
<ion-list class="card list">
<div class="item item-input">
<i class="icon ion-search placeholder-icon"></i>
<input type="search" ng-model="q" placeholder="Procurar" aria-label="filter bebidasextras" />
</div>
</ion-list>
<div class='card product-card' ng-repeat='bebida in bebidasextras track by $index'>
<div class='item item-thumbnail-right product-item'>
<!-- <img ng-src='{{product.images[0]}}' class='product-image' ion-product-image='product'> -->
<h3 class='product-title'><b>{{bebida.ad_bebida_titulo}}</b> - Valor: {{bebida.ad_bebida_valor | currency:"R$"}}</h3>
<!-- <p class='product-description'>{{product.description}}</p> -->
<div class="flex_row">
<i class='button icon ion-plus-circled green' mouse-down-up ng-click="add(bebida)"></i>
<span class='product-quantity'>{{bebida.ad_bebida_quantidade}}</span>
<i class='button icon ion-minus-circled red' mouse-down-up ng-click="sub(bebida)"></i>
</div>
<span class='product-price' ng-if="bebida.ad_bebida_quantidade > 0"><b>Total: {{bebida.ad_bebida_valor * bebida.ad_bebida_quantidade | currency:"R$"}}</b></span>
<span class='product-price' ng-if="bebida.ad_bebida_quantidade < 0">Quantidade não aceita. </span>
</div>
</div>
<button class="button button-block button-assertive" ng-click="updateBebida()"> <!-- Chama para armazenar num WebSQL -->
Continuar o Pedido
</button>
</ion-content>
My Complete Controller:
.controller("exBebidasCtrl", function($scope,$rootScope,$state,$ionicScrollDelegate,$http,$httpParamSerializer,$stateParams,$timeout,$ionicLoading,$ionicPopup,$ionicPopover,$ionicSlideBoxDelegate,$ionicHistory,ionicMaterialInk,ionicMaterialMotion, sharedCartService,CartServiceBebidasEx, $location, DBLocalAdBebidas){
// VERIFICA SE HÁ BEBIDAS EXTRAS
$scope.bebidasextras = [];
var promise = $http.get('http://nhac.esy.es/api_carrinho/lista_bebida_extra.php?json=restaurantes')
.success(function(retorno) {
console.log(retorno);
$scope.bebidasextras = retorno; // não precisa fazer retorno.data
$scope.user = {
bebidasextras: [$scope.bebidasextras[1]]
};
$scope.checkAll = function() {
$scope.user.bebidasextras = angular.copy($scope.bebidasextras);
};
$scope.uncheckAll = function() {
$scope.user.bebidasextras = [];
};
$scope.checkFirst = function() {
$scope.user.bebidasextras = [];
$scope.user.bebidasextras.push($scope.bebidasextras[0]);
};
$scope.setToNull = function() {
$scope.user.bebidasextras = null;
};
})
.error(function(erro) {
console.log(erro);
});
// ADICIONA OU REMOVE ITENS
$scope.sub = function(i) {
i.ad_bebida_quantidade--;
}
$scope.add = function(i) {
i.ad_bebida_quantidade++;
}
// PEGA BEBIDAS SELECIONADAS
$scope.updateBebida = function(){
var p = [];
for (var i = 0; i < $scope.bebidasextras.length; i++) {
var item = $scope.bebidasextras[i];
console.log(item);
if ( item.selected) {
p.push(item )
}
}
$scope.selectedItems = p;
var item;
//aqi vai percorrer todo o conteudo da vriavep p, poderia ate dar
//uma otimaizada e deixar junto com o p.push(item), ai "economiza" um for
for(var i in p){
item = p[i];
console.log(item);
var titulo = p.filter(function(e) {
return e.titulo_promo == item.ad_bebida_titulo
conlole.log(titulo);
})
// TESTA SE GUARDA A BEBIDA SELECIONADA
// INSERINDO DADOS LOCALMENTE
DBLocal.localdb();
DBLocal.db.transaction(function(res) {
res.executeSql("INSERT INTO AD_BEBIDAS (nome_bebida_ad) VALUES(?);", [item.ad_bebida_titulo]);
});
}
}
})
See what I’m trying to do using this excerpt:
// PEGA BEBIDAS SELECIONADAS
$scope.updateBebida = function(){
var p = [];
for (var i = 0; i < $scope.bebidasextras.length; i++) {
var item = $scope.bebidasextras[i];
console.log(item);
if ( item.selected) {
p.push(item )
}
}
$scope.selectedItems = p;
var item;
//aqi vai percorrer todo o conteudo da vriavep p, poderia ate dar
//uma otimaizada e deixar junto com o p.push(item), ai "economiza" um for
for(var i in p){
item = p[i];
console.log(item);
var titulo = p.filter(function(e) {
return e.titulo_promo == item.ad_bebida_titulo
conlole.log(titulo);
})
// TESTA SE GUARDA A BEBIDA SELECIONADA
// INSERINDO DADOS LOCALMENTE
DBLocal.localdb();
DBLocal.db.transaction(function(res) {
res.executeSql("INSERT INTO AD_BEBIDAS (nome_bebida_ad) VALUES(?);", [item.ad_bebida_titulo]);
});
}
But it’s all wrong here, I can’t use... some light at the end of the tunnel? :)
Guys, thank you so much. I came back just to thank you! Thanks so much! :)
– Ramos