Precisava inserir uma menssagem quando clicar no evento do botão, mas não estou conseguindo :( . Depois de quebrar a cabeça refazendo todos os passos e conferindo todas as classes ainda não consegui identificar o erro nem com meus breakpoints haha! Podem me dar uma força :D?
class Menssagem{
constructor(texto=''){
this._texto = texto;
}
get texto(){
return this._texto;
}
set texto(texto){
this._texto = texto;
}
}
class MenssagemView {
constructor(elemento) {
this._elemento = elemento;
}
_template(model){
return `<p class="alert alert-info>${model.texto}</p>"`
}
update(model){
this._elemento.innerHTML = this._template(model);
}
}
class NegociacaoController{
constructor(){
let $ = document.querySelector.bind(document);//ao inves de criar em variaveis para pecorrer o dom ele cria tipo uma espécie de cache do elemento do DOM
this._inputData = $('#data');//o bind referencia o document, pois sem ele o "document.querySelector" perde a referencia
this._inputQuantidade = $('#quantidade');
this._inputValor = $('#valor');
this._listaNegociacoes = new ListaNegociacoes();//lista criada
this._negociacoesView = new NegociacoesView($('#negociacoesView'));
this._negociacoesView.update(this._listaNegociacoes);
this._menssagem = new Menssagem();
this._menssagemView = new MenssagemView($('#menssagemView'));
this._menssagemView.update(this._menssagem);
}
adiciona(event){
event.preventDefault();
this._listaNegociacoes.adiciona(this._criaNegociacao());
this._negociacoesView.update(this._listaNegociacoes);// quando adicionar uma linha na lista ele vai chamar o update e atualizar a tabela com a lista
this._menssagem.texto = 'Negociacao adicionada!Com sucesso!'
this._menssagemView.update(this._menssagem);
this._limpaFormulario();
console.log(this._listaNegociacoes.negociacoes);
console.log(this._menssagem);
}
//ao inves de armazenar em uma variavel criou uma function ai é só chamar ela quando for criar.
_criaNegociacao(){
return new Negociacao(
DateHelper.textoParaData(this._inputData.value),
this._inputQuantidade.value,
this._inputValor.value);
}
//para limpar o formulário e voltar ao inicio
_limpaFormulario(){
this._inputData.value = '';
this._inputQuantidade.value = 1;
this._inputValor.value = 0.0;
this._inputData.focus();
}
}
ela não exibe no minha pagina a menssagem