1
resposta

minha pagina nao atualiza com o _LimpaFormulario

Quando eu crio o método LimpaFormulario() fora do método adiciona(), como o professor fez, minha view nao atualiza conforme o esperado. Ela não apresenta erro no console, mas não acontece nada. A única forma que encontrei de resolver foi chamando o método dentro de adiciona() com o this. Teria algum problema nessa solução???

segue meu código com problema:

class NegociacaoController {


constructor() {

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


}

adiciona(event) {
    event.preventDefault();

    let negociacao = 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();
}

}

segue minha solução:

adiciona(event) {
        event.preventDefault();

        let negociacao = new Negociacao(
            DateHelper.textoParaData(this._inputData.value),
            this._inputQuantidade.value,
            this._inputValor.value
        );  

        this._LimpaFormulario();

    }

    _LimpaFormulario() {
        this._inputData.value = '';
        this._inputQuantidade.value = 1;
        this._inputValor.value = 0.0;

        this._inputData.focus();
    }

}
1 resposta

Sim, mas neste caso a função _limpaFormulario tem que estar dentro da função adiciona(), se não, ela não está sendo chamada, e de acordo com o exemplo usado nesta aula, ele utilizou desta maneira

adiciona(event) {

    event.preventDefault();

    this._listaNegociacoes.adiciona(this._criaNegociacao());
    this._limpaFormulario();

    console.log(this._listaNegociacoes.negociacoes);
}   

_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();

            }

Se a função "limpaFormulario" nao estiver dentro da função "adiciona", ninguém estará chamando a mesma e ela não fará nada.