Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Mensagem (Não foi possivel obter as negociações) e (Negociações importadas com sucesso) não são exibidas

Estou no modulo 5 aula 1 Desde o modulo anterior, as duas mensagem acima, não são exibidas da primeira fez em que o botão IMPORTAR NEGOCIAÇÕES ou APAGAR são acionadas.

A primeira vez em que é clicado não aparece as mengens. A segunda fez que é clicar exibe as mensagem.

Abaixo o código onde deve ser exibida a mensagem (Negociações importadas com sucesso.)

class NegociacaoController {

constructor() 
{

    let $ = document.querySelector.bind(document);
    this._inputData = $('#data');
    this._inputQuantidade = $('#quantidade');
    this._inputValor = $('#valor');

    this._listaNegociacoes = new Bind(
        new ListaNegociacoes(),
        new NegociacoesView($('#negociacoesView')),
        'adiciona', 'esvazia');

    this._mensagem = new Bind(
        new Mensagem(),
        new MensagemView($('#mensagemView')),
        'texto');
}

adiciona(event) {
    event.preventDefault();
    this._listaNegociacoes.adiciona(this._criaNegociacao());
    this._mensagem.texto = 'Negociação adicionada com sucesso!';
    this._limpaFormulario();
}

importaNegociacoes() {

    let service = new NegociacaoService();

    service.obterNegociacoesDaSemana((erro, negociacoes) => {

        if(erro) {
            this._mensagem.texto = erro;
            return;
        }

        negociacoes.forEach(negociacao => this._listaNegociacoes.adiciona(negociacao));

        service.obterNegociacoesDaSemanaAnterior((erro, negociacoes) => {

            if(erro) {
                this._mensagem.texto = erro;
                return;
            }

            negociacoes.forEach(negociacao => this._listaNegociacoes.adiciona(negociacao));

            service.obterNegociacoesDaSemanaRetrasada((erro, negociacoes) => {

                if(erro) {
                    this._mensagem.texto = erro;
                    return;
                }

                negociacoes.forEach(negociacao => this._listaNegociacoes.adiciona(negociacao));
                this._mensagem.texto = 'Negociações importadas com sucesso.';                    
            });
        });
    });
}

apaga() {

    this._listaNegociacoes.esvazia();
    this._mensagem.texto = 'Negociações apagadas com sucesso!';
}

_criaNegociacao() {

    return new Negociacao(
        DateHelper.textoParaData(this._inputData.value),
        this._inputQuantidade.value,
        this._inputValor.value);
}

_limpaFormulario() {

    this._inputData.value = '';
    this._inputQuantidade.value = 1;
    this._inputValor.value = 0.0;        
    this._inputData.focus();
}

}

2 respostas

Fala ai Gustavo, tudo bem? Olhando assim os códigos é bem complicado achar o problema, posso deixar passar detalhes facilmente.

Sendo assim, posso te pedir um favor? Compartilha o projeto completo comigo, assim eu consigo simular o problema por aqui e analisá-lo com mais calma.

Pode compartilhar através do Github ou Google Drive (zipado).

Fico no aguardo.

solução!

Segue o link dos arquivos do GitHub https://github.com/gustavobrod/JavaScript/tree/master/8-AprofMVC

Precisa clicar duas vezes no botão Importar para que seja exibida no cabeçalho. O mesmo server para o botão Apagar.

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