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>
`