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

Método com implementação na classe filha

Olá,

A implementação funcionou, pois as classes filhas de View (NegociacaoView e MensagemView), chamam o método update do pai (View)... caso as classes filhas tivessem uma implementação própria de update, qual seria uma boa forma de implementar o escape?

3 respostas

Fala aí Rafael, tudo bem? Desculpe, mas, não entendi.

Consegue me passar mais detalhes fazendo favor?

Fico no aguardo.

Olá,Matheus

Obrigado pelo retorno.

abaixo o código da classe filha de View, que tem sua própria implementação do método update e não tem as instruções para escapar a tag script.... neste caso o método update da classe pai (View) que tem as instruções para escapar a tag script, não será executado, certo?

Se eu tirar o método update da classe filha e deixar para ele executar apenas o método do pai, a opção de escapar a tag script funciona.

import { View } from './View';
import { Negociacoes } from '../models/Negociacoes';

export class NegociacoesView extends View<Negociacoes> {

  update(model: Negociacoes): void {
    this._elemento.html(this.template(model));
  }
  template(model: Negociacoes): string {
    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.paraArray().map(negociacao => `
                  <tr>
                    <td>${negociacao.data.getDate()}/ ${negociacao.data.getMonth() + 1}/ ${negociacao.data.getFullYear()}</td>
                    <td>${negociacao.quantidade}</td>
                    <td>${negociacao.valor}</td>
                    <td>${negociacao.volume}</td>
                  </tr>
                `).join('')}
                </tbody>
            <tfoot></tfoot>
            <script>alert('oi')</script>
        </table>               
        `
  }
}
solução!

Fala aí Rafael, vamos lá:

Neste caso o método update da classe pai (View) que tem as instruções para escapar a tag script, não será executado, certo?

Exatamente, ele irá chamar o método da classe filha pois o mesmo foi sobrescrito.

Espero ter ajudado.

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