1
resposta

[Dúvida] Mudança só após teclar F5

Aparentemente meu código está exatamente igual ao da aula porém a mudança só acontece após apertar F5, testei no chrome e Edge, no edge apenas as mudanças de + e - funcionam, mas quando chega a zero o livro só some do carrinho após usar o F5. Poderiam me ajudar a encontrar o erro?

    postQuantidade(data) {
        $.ajax({
            url: '/pedido/updatequantidade',
            type: 'POST',
            contentType: 'application/json',
            data: JSON.stringify(data)
        }).done(function (response) {

            let itemPedidoJS = response.itemPedido;
            let linhaDoItem = $('[item-id=' + itemPedidoJS.id + ']');
            let carrinhoViewModel = response.carrinhoViewModel;

            linhaDoItem.find('input').val(itemPedidoJS.quantidade);
            linhaDoItem.find('[subtotal]').html((itemPedidoJS.subtotal).duasCasas());
            $('[numero-itens]').html('Total: ' + carrinhoViewModel.Itens.length + ' itens');
            $('[total]').html((carrinhoViewModel.total).duasCasas());

            if (itemPedidoJS.quantidade == 0) {
                linhaDoItem.remove();
            }
        });
1 resposta

Olá, Felipe

Ao analisar o código fornecido, percebi que você está utilizando o método remove() para remover o item do carrinho quando a quantidade chega a zero. No entanto, você não está atualizando a quantidade total de itens no carrinho na view.

Para resolver isso, você precisa adicionar a linha de código que atualiza a quantidade total de itens no carrinho. No trecho de código fornecido, você pode adicionar a seguinte linha após a remoção do item:

$('[numero-itens]').html('Total: ' + carrinhoViewModel.Itens.length + ' itens');

Essa linha de código utiliza o seletor '[numero-itens]' para encontrar o elemento que contém a quantidade total de itens no carrinho na view e atualiza o seu conteúdo com a quantidade correta.

Além disso, você também precisa atualizar o valor total do carrinho na view. Para isso, você pode adicionar a seguinte linha de código após a atualização da quantidade total de itens:

$('[total]').html((carrinhoViewModel.total).duasCasas());

Essa linha de código utiliza o seletor '[total]' para encontrar o elemento que exibe o valor total do carrinho na view e atualiza o seu conteúdo com o valor correto, formatado com duas casas decimais.

Após adicionar essas linhas de código, o valor total e a quantidade de itens no carrinho devem ser atualizados corretamente na view, sem a necessidade de apertar F5.

Espero ter ajudado! Bons estudos!