Boa tarde, cheguei no módulo 4 e ao finalizar o método responsável por importar dados recebi a seguinte mensagem no console:
this._negociacoes is undefined
Segue o código do meu controlador:
import { Negociacao, Negociacoes } from "../models/index";
import { NegociacoesView, MensagemView } from "../views/index";
import { domInject } from "../helpers/decorators/domInject";
export class NegociacaoController {
@domInject('#data')
private _inputData: JQuery;
@domInject('#quantidade')
private _inputQuantidade: JQuery;
@domInject('#valor')
private _inputValor: JQuery;
private _negociacoes: Negociacoes = new Negociacoes();
private _negociacoesView : NegociacoesView = new NegociacoesView('#negociacoesView');
private _mensagemView : MensagemView = new MensagemView('#mensagemView');
constructor() {
//this._inputData = $('#data');
//this._inputQuantidade = $('#quantidade');
//this._inputValor = $('#valor');
this._negociacoesView.update(this._negociacoes);
}
adiciona(event:Event) {
event.preventDefault();
const negociacao = new Negociacao(
new Date(this._inputData.val().replace(/-/g, ',')),
parseInt(this._inputQuantidade.val()),
parseFloat(this._inputValor.val())
);
this._negociacoes.adiciona(negociacao);
this._negociacoesView.update(this._negociacoes);
this._mensagemView.update('Negociação Inserida com Sucesso!');
}
importarDados() {
function isOK(res: Response) {
if(res.ok) {
return res;
} else {
throw new Error(res.statusText);
}
}
fetch('http://localhost:8080/dados')
.then(res => isOK(res))
.then(res => res.json())
.then((dados: any[]) => {
dados
.map(dado => new Negociacao(new Date(), dado.vezes, dado.montante))
.forEach(negociacao => this._negociacoes.adiciona(negociacao));
})
.catch(err => console.log(err.message));
}
}