Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Uncaught TypeError: Cannot read property 'duasCasas' of undefined

Pessoal estou tendo o seguinte erro no meu JavaScript.]Será que alguém poderia me ajudar por favor?!

Carrinho.JS

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

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

            linhaDoItem.find('input').val(itemPedido.quantidade);
            linhaDoItem.find('[subtotal]').html((itemPedido.subtotal).duasCasas());

            let carrinhoViewModel = response.carrinhoViewModel;

            $('[numero-itens]').html('Total: ' + carrinhoViewModel.Items.lenght + 'itens');
            $('[total]').html((carrinhoViewModel.Total).duasCasas());

            if (itemPedido.quantidade === 0) {
                linhaDoItem.remove();
            }
            debugger;
        });
    }
}

var carrinho = new Carrinho();

Number.prototype.duasCasas = function () {
    return this.toFixed(2).replace('.', ',');
}

Muito obrigado pela atenção de todos agradeço desde já!

1 resposta
solução!

Galera debuggando MUIIIIIIITTOOOO o JavaScript, Coloquei o code 'debugger', bem abaixo da response e fui vendo tudo que o atributo pegava, e vi que os atributos do meu JavaScript em particular estavam diferentes dos da aula, por questão de letras maiúsculas e minúsculas todos meus atributos estavam em 'camelCase', assim dando f10 e f11 durante o debugg, fui vendo o que o JavaScript estava de fato passando e quais os nomes das variáveis que ele estava passando. E no final o code ficou desta forma galera:

Carrinho.js

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

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

            linhaDoItem.find('input').val(itemPedido.quantidade);
            linhaDoItem.find('[subtotal]').html((itemPedido.subTotal).duasCasas());

            let carrinhoViewModel = response.carrinhoViewModel;

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

            if (itemPedido.quantidade === 0) {
                linhaDoItem.remove();
            }
        });
    }
}

var carrinho = new Carrinho();

Number.prototype.duasCasas = function () {
    return this.toFixed(2).replace('.', ',');
}

Erro meu galera, mil perdões! Muito obrigado por todos que passarem por este tópico, e espero que tenha ajudado a resolverem os seus erros!

Uma dica importante, sempre debuggem seus códigos com muita atenção e paciência, demorei 1 hora inteirinha para resolver isto tudo, mas valeu a pena! Pois aprendi de fato toda essa manipulação de html/arquivo/back-end relacionado/front-end relacionado!

Bons Estudos a Todos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software