1
resposta

Cannot create property 'innerHTML' on string '

class NegociacoesView {

    constructor(elemento) {

            this._elemento = elemento;

        }

        _template() {

                    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>
                                </tbody>
                         </table>`;

                }


        update (){

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


            }

}

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Negociações</title>
    <link rel="stylesheet" href="css/bootstrap.css">
    <link rel="stylesheet" href="css/bootstrap-theme.css">

</head>
<body class="container">

    <h1 class="text-center">Negociações</h1>

    <form class="form" onsubmit="negociacaoController.adiciona(event)">

        <div class="form-group">
            <label for="data">Data</label>
            <input type="date" id="data" class="form-control" required autofocus/>        
        </div>    

        <div class="form-group">
            <label for="quantidade">Quantidade</label>
            <input type="number" min="1" step="1" id="quantidade" class="form-control" value="1" required/>
        </div>

        <div class="form-group">
            <label for="valor">Valor</label>
            <input id="valor" type="number" class="form-control"  min="0.01" step="0.01" value="0.0" required />
        </div>

        <button class="btn btn-primary" type="submit">Incluir</button>
    </form>

    <div class="text-center">
        <button class="btn btn-primary text-center" type="button">
            Importar Negociações
        </button>
        <button class="btn btn-primary text-center" type="button">
            Apagar
        </button>
    </div> 
    <br>
    <br>
    <div id="NegociacoesView.js"></div>
    <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/view/NegociacoesView.js"></script>
    <script>
        let negociacaoController = new NegociacaoController();
    </script>
</body>
</html>
1 resposta

Olá, Renato.

Parece que onde você instancia NegociacoesView, você está passando uma string no construtor, ao invés de um elemento. Dá uma conferida nessa parte...

Abraços!

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