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

Herança da classe View

Não consigo herdar as funcionalidades da classe mãe, já revisei o código e comparei e está perfeitamente igual a da aula, porém não obtive sucesso.

class View{

    constructor(elemento){
        this._elemento = elemento;
    }

    template(){
        throw new Error('O método _template() deve ser implementado.');
    }

    update(model){
        this._elemento = this.template(model);
    }
}
class MensagensView extends View{

    constructor(elemento){
        super(elemento);
    }

    template(model){
        return model.texto ? `<p class="alert alert-info">${model.texto}</p>` : `<p></p>`
    } 
}
class NegociacoesView extends View{

    constructor(elemento){
        super(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(negociacao => 
                `
                <tr>
                    <td>${DateHelper.dataParaTexto(negociacao.data)}</td>
                    <td>${negociacao.quantidade}</td>
                    <td>${negociacao.valor}</td>
<td>${negociacao.volume}</td>
                </tr>

            `).join('')}
            </tbody>

            <tfoot>
                <td colspan="3"></td>
                    <td>
                        ${model.negociacoes.reduce((total,elemento) => total + elemento.volume ,0.0)}
                    </td>
            </tfoot>
        </table>
        `;
    }
}
<script src="js/app/models/Negociacao.js"></script>
<script src="js/app/controllers/NegociacaoController.js"></script>
<script src="js/app/helpers/DateHelper.js"></script>
<script src="js/app/models/ListaNegociacoes.js"></script>
<script src="js/app/models/modelo.js"></script>
<script src="js/app/views/View.js"></script>
<script src="js/app/views/MensagensView.js"></script>
<script src="js/app/views/NegociacoesView.js"></script>

`

1 resposta
solução!

Faltou o .innerHTML na classe mãe ._.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software