Na aula 3 dos Decorators, vídeo 7, quando eu insiro os inputs e tento buscar, retorna um erro que não pode ler 'val' da variável data no método adiciona:
Uncaught TypeError: Cannot read property 'val' of undefined at NegociacaoController.adiciona (NegociacaoController.js:33) at HTMLFormElement.dispatch (jquery.min.js:3) at HTMLFormElement.q.handle (jquery.min.js:3)
Meu código está assim:
import { Negociacoes, Negociacao } from '../models/index';
import { NegociacoesView, MensagemView } from '../views/index';
import { domInject } from '../helpers/decorators/index';
export class NegociacaoController {
@domInject('#data')
private _inputData: JQuery;
@domInject('#quantidade')
private _inputQuantidade: JQuery;
@domInject('#valor')
private _inputValor: JQuery;
private _negociacoes = new Negociacoes;
private _negociacoesView = new NegociacoesView('#negociacoesView', true);
private _mensagemView = new MensagemView('#mensagemView', true);
constructor() {
this._negociacoesView.update(this._negociacoes);
}
adiciona(event: Event){
event.preventDefault();
let data = new Date(this._inputData.val().replace(/-/g, ','));
if(!this._ehDiaUtil(data)) {
this._mensagemView.update('Somente negociações em dias úteis, por favor!');
return
}
const negociacao = new Negociacao(
data,
parseInt(this._inputQuantidade.val()),
parseFloat(this._inputValor.val())
);
this._negociacoes.adiciona(negociacao);
this._negociacoesView.update(this._negociacoes);
this._mensagemView.update('Negociação adicionada com sucesso!');
}
private _ehDiaUtil(data: Date) {
return data.getDay() != DiaDaSemana.Sabado && data.getDay() != DiaDaSemana.Domingo;
}
}
enum DiaDaSemana {
Domingo,
Segunda,
Terca,
Quarta,
Quinta,
Sexta,
Sabado
}