3
respostas

A negociação deixou incluir, mas não apareceu no formulário. No console não apresentou nenhum erro. Status: a propriedade "adiciona" foi interceptada <br>2

class NegociacaoController {

constructor() {

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

    let self = this; 

    this._listaNegociacoes = new Proxy(new ListaNegociacoes(), { //trouxe de index.html

        get: function(target, prop, receiver) { 

            if(['adiciona', 'esvazia'].includes(prop) && typeof(target[prop]) == typeof(Function)) {

                return function() {

                    console.log(`a propriedade "${prop}" foi interceptada`);
                    Reflect.apply(target[prop], target, arguments); 

                    self._negociacoesView.update(target); 

                }

            }             
                return Reflect.get(target, prop, receiver);
        }
    });

    this._negociacoesView = new NegociacoesView($('#negociacoesView'));
    this._negociacoesView.update(this._listaNegociacoes);

    this._mensagem = new Mensagem();
    this._mensagemView = new MensagemView($('#mensagemView'));
    this._mensagemView.update(this._mensagem);

}

adiciona(event) {

    event.preventDefault();
    this._listaNegociacoes.adiciona(this._criaNegociacao());

    this._mensagem.texto = 'Negociação adicionada com sucesso';
    this._mensagemView.update(this._mensagem);

    this._limpaFormulario();   
}

apaga() {

    this._listaNegociacoes.esvazia();

    this._mensagem.texto = 'Negociações apagadas com sucesso';
    this._mensagemView.update(this._mensagem);
}
_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();   
}

}

3 respostas

Fala ai Carlos, tudo bem? Não entendo o ponto do "mas não apareceu no formulário", consegue me passar mais detalhes?

Fico no aguardo e desculpe o mal entendimento.

Olá Matheus. No exemplo feito na aula, os valores foram adicionados no formulário. Com meu código, informa que a negociação foi adicionada com sucesso, não da erro no console, limpa os dados adicionados e não aparecem no formulário nos campos Data | Quantidade | Valor | Volume

Fala ai Carlos, consegue compartilhar o projeto? Assim eu consigo simular o problema e analisá-lo com mais calma por aqui.

Fico no aguardo.

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