1
resposta

A data, a quantidade e o valor não sumiram quando apertei incluir

A data, a quantidade e o valor não sumiram quando apertei incluir que nem aconteceu com o professor Flavio, é para isso acontecer? Eu uso Windows.

Meu código do NegociacaoController.js está assim:

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

    console.log(negociacao)

    console.log(DateHelper.dataParaTexto(negociacao.data));
  }
}

Meu código do DataHelper está assim:

class DateHelper {

  constructor() {

    throw new Error('Está classe não pode ser instanciada');
  }

  static dataParaTexto(data) {
    return `${data.getDate()}/${data.getMonth() + 1}/${data.getFullYear()}`;
  }

  static textoParaData(texto) {

    if (!/\d{4}-\d{2}-\d{2}/.test(texto))
      throw new Error('Deve estar no formato aaaa-mm-dd');
    return new Date(...texto.split('-').map((item, indice) => item - indice % 2));
  }

}

E meu código de Negociacao.js esta assim:

class Negociacao {
  constructor(data, quantidade, valor) {

    this._data = new Date(data.getTime());
    this._quantidade = quantidade;
    this._valor = valor;
    Object.freeze(this);
  }

  get volume() {

    return this._quantidade * this._valor;
  }

  get data() {
    return new Date(this._data.getTime());
  }

  get quantidade() {
    return this._quantidade;
  }

  get valor() {
    return this._valor;
  }
}
1 resposta

Olá, tudo bem com você?

Peço desculpas pela demora no retorno.

O seu código está funcionando como esperado. O comportamento de apagar os dados do formulário após ser enviado, será adicionado na próxima aula, com a criação do método _limpaFormulario para a classe NegociacaoController. O novo método será declarado como apresentado abaixo.

_limpaFormulario() {
    this._inputData.value = '';
    this._inputQunatidade.value = 1;
    this._inputValor.value = 0.0;

    this._inputData.focus();
}

Este método será chamado dentro do método adiciona da classe NegociacaoController. Assim sempre, após uma nova negociação ser adicionada, o método é chamado apagando os valores inseridos no formulário.

Para acompanhar uma explicação detalhada do funcionamento do método _limpaFormulario você pode estar acessando o link abaixo, no minuto 5:30 é iniciado a criação e explicação do método.

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Espero ter lhe ajudado. Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!