Mensagens de alerta
Expression
not available
DevTools failed to load SourceMap: Could not load content for file:///C:/Clairton/Cursos%20ALURA/Forma%C3%A7%C3%A3o%20Framework%20Angular/Curso%20TypeScript/alurabank/app/css/bootstrap.css.map: System error: net::ERR_FILE_NOT_FOUND
DevTools failed to load SourceMap: Could not load content for file:///C:/Clairton/Cursos%20ALURA/Forma%C3%A7%C3%A3o%20Framework%20Angular/Curso%20TypeScript/alurabank/app/css/bootstrap-theme.css.map: System error: net::ERR_FILE_NOT_FOUND
12
12
class NegociacaoController {
private _inputData: JQuery;
private _inputQuantidade: JQuery;
private _inputValor: JQuery;
// private _negociacoes: Negociacoes = new Negociacoes();
// ou podemos remover a declaração do tipo pois o TS entende que estamos instanciando do tipo Negociacoes
private _negociacoes = new Negociacoes();
private _negociacoesView = new NegociacoesView('#negociacoesView');
private _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.value.replace(/-/g, ',')),
parseInt(this._inputQuantidade.value),
parseFloat(this._inputValor.value)
);
//console.log(negociacao);
// --> TESTES <--
this._negociacoes.adiciona(negociacao);
// apaga o array
// this._negociacoes.paraArray().length = 0; // acabou de apagar!
// não tem dado para iterar! -->
/*
// imprime a lista de negociações encapsulada
console.log(this._negociacoes.paraArray());
*/
/*
this._negociacoes.paraArray().forEach(negociacao => {
console.log(negociacao.data);
console.log(negociacao.quantidade);
console.log(negociacao.valor);
});
*/
this._negociacoesView.update(this._negociacoes);
this._mensagemView.update('Negociação adicionada com sucesso.');
}
}
// declare var $: any;
abstract class View<T> {
// protected _elemento: Element;
// tornando a class View do tipo generics não e mais nececssário deixar a propriedade da classe
// _elemento como protected fazendo o encapsulamento no modo privade deixando-a mais segura.
// e acessivel a metodos somente desta clase.
private _elemento: JQuery; //any;
constructor(seletor: string) {
this._elemento = $(seletor);
}
update(model: T): void{
this._elemento.html(this.template(model));
}
abstract template(model: T): string;
/* {
throw new Error('Você deve implementar o método template');
} */
}