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

Conversão direto no constructor

class NegociacaoController
{
  constructor(){
    let $ = document.querySelector.bind(document);
    this._inputDataString = $('#data');
    **this._inputData = new Date(this._inputDataString.value.split('-'));**
    this._inputQuantidade = $('#quantidade');
    this._inputValor = $('#valor');

adiciona(event)
  {

      event.preventDefault();

      **console.log(this._inputData);**
      //let negociacao = new Negociacao(this._inputData.value,                            this._inputQuantidade.value,this._inputValor.value)
  }
}

Por que quando esta conversão acontece dentro do construct ele da o erro de Invalid Date, qual a diferença entre converter dentro do construct ou apenas dentro do método adiciona. Obrigadoo desde já

5 respostas

Essa propriedade possui algum valor quando ele é chamado no contructor ?

this._inputDataString.value.split('-')
`

e porque você não faz assim

this._inputData = new Date( $('#data').value.split('-'));

Gustavo, onde você carregou o script do controller? Head ou body?

solução!

Gustavo, onde você carregou o script do controller? Head ou body? Se for no head não vai funcionar.

Além disso, o problema não é conversão construtor, mas um errinho. Vou explicar.

Se você já converte a data no construtor estará guardando a data ja convertida e não o elemento do DOM que aponta sempre para o valor atual digitado pelo usuário. Quando for gravar a data nova, não terá mais referência para o elemento do DOM que sempre tem o último valor cadastrado, mas sempre o valor que você já converteu.

Estamos no aguardado do seu feedback Gustavo :)

Desculpe pela demora do feedback, andei um pouco afastado no ultimo mês.

Realmente não pensei na questão da referência no DOM atualizada, muito obrigado pela explicação excelente.

Só para responder a questão anterior, o script estava no body mesmo e ao nosso amigo Alan Gomes: mais pra frente do curso usamos a classe DateHelper para fazer a conversão, estava funcionando certinho, só por curiosidade mesmo queria testar a conversão no constructor e não estava entendendo direito por q não funcionava.

Enfim, muito obrigado, abraços