Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

JS avançado I - ES6 - AULA 6 Generalizando a solução da nossa View

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

1 resposta
solução!

achei kkk ! logo depois de postar percebi que no alert tinha um " no lugar errado nor etorno do _template !Obrigado pela oportunidade de postar !