Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Lista de negociações não aparece na tabela

Ao clicar no botão incluir os dados não aparecem na tabela e não consigo entender o motivo.

GitHub https://github.com/Lorandi/StockJS

NegociacoesView.js

class NegociacoesView {

  constructor(elemento) {

    this._elemento = elemento;
  }

  _template(model) {

    return `
    <table class="table table-hover table-bordered">
                <thead>
                    <tr>
                        <th>DATA</th>
                        <th>QUANTIDADE</th>
                        <th>VALOR</th>
                        <th>VOLUME</th>
                    </tr>
                </thead>
                <tbody>                
                  ${model.negociacoes.map(n => {

                    return `
                      <tr>
                        <td>${DateHelper.dataParaTexto(n.data)}</td>
                        <td>${n.quantidade}</td>
                        <td>${n.valor}</td>
                        <td>${n.volume}</td>
                    </tr>
                    `
                  }).join('')}
                </tbody>
         </table>
        `;
  }
  update(model) {

    this._elemento.innerHTML = this._template(model);
  }

}

Alguma sugestão?

2 respostas
solução!

Fala Rodrigo, tudo bem?

A negociação está sendo adicionada normalmente, o que acontece é que você não colocou para atualizar a view após a inclusão dos dados! Você pode resolver isso simplesmente adicionando:

this._negociacoesView.update(this._listaNegociacoes);

Antes de limpar o formulário, ficando assim:

adiciona(event) {
    event.preventDefault();   
    this._listaNegociacoes.adiciona(this._criaNegociacao());
    this._negociacoesView.update(this._listaNegociacoes)
    this._limpaFormulario()  
  }

Espero ter ajudado, bons estudos :D

Grande Mateus

Era isso mesmo.

Em algum momento do turorial acabei pulando essa etapa.

Muito obrigado