2
respostas

Tabela HTML não atualiza - Identifier 'negociacaoController' has already been declared

Ao atualizar o index.html ao final da aula 1 recebo a mensagem

Uncaught SyntaxError: Identifier 'negociacaoController' has already been declared

div id="negociacoesView"></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>

NegociacaoController

class negociacaoController {
    /*para melhorar a performance do código,
    usa-se o constructor para criar uma instância
    e assim percorrer o DOM somente uma vez*/
    /*quando eu jogo um método para uma variável, 
    ele perde a associação com o objeto, assim usa-se bind*/
    constructor() {

        let $ = document.querySelector.bind(document);
        this._inputData = $('#data');
        this._inputQtde = $('#quantidade');
        this._inputValor = $('#valor');
        this._listaNegociacoes = new ListaNegociacoes();
        this._negociacoesView = new NegociacoesView($('#NegociacaoView'));

        this._negociacoesView.update();
    }

    adiciona(event) {

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

    _criaNegociacao() {

        return new Negociacao(
            DateHelper.textoParaData(this._inputData.value),
            this._inputQtde.value,
            this._inputValor.value);    
    }
    _limpaFormulario() {
        this._inputData.value = '';
        this._inputQtde.value = 1;
        this._inputValor.value = 0.0

        this._inputData.focus();

    } 



}
2 respostas
class negociacaoView {
    constructor() {
        this._elemento = elemento;
        }
        _template() {

Bom dia! Acho q o problema está no constructor.. você está passando um parâmetro no Controller mas na class não.

Acredito o correto ser assim:

class negociacaoView {
    constructor(elemento) {
        this._elemento = elemento;
        }
        _template() {

Bom dia Onassis,

Realmente eu nao havia colocado, obrigado, mas ainda não apareceu a tabela :(