6
respostas

Importação || NegociacaoController is not defined

Olá, bom dia. Meu código está dando erro, aparecendo que "NegociacaoController não foi definida", olhei meu código e comparei com o do professor, mas não achei nenhuma diferença. Alguém pode me ajudar por favor? Não gosto de ficar parado.

Meu código de NegociacaoController.js está assim:

class NegociacaoController {

  constructor() {

    let $ = document.querySelector.bind(document);

    this._inputData = $('#data');
    this._inputQuantidade = $('#quantidade');
    this._inputValor = $('#valor');


    this._listaNegociacoes = new Bind
      (new ListaNegociacoes(),
        new NegociacoesView($('#negociacoesView')),
        'adiciona', 'esvazia')


    this._mensagem = new Bind
      (new Mensagem(),
        new MensagemView($('#mensagemView')),
        'texto');

  }

  adiciona(event) {

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

    this._mensagem.texto = 'Negociação adicionada com sucesso';

    this._limpaFormulario();
  }

  importaNegociacoes() {

    let service = new NegociacaoService();

    service.obterNegociacoesDaSemana((erro, negociacoes) => {
      if (erro) {
        this._mensagem.text = erro;
        return;
      }

      negociacoes.forEach(negociacao => this._listaNegociacoes.adiciona(negociacao));

      service.obterNegociacoesDaSemanaAnterior((erro, negociacoes) => {
        if (erro) {
          this._mensagem.text = erro;
          return;
        }

        negociacoes.forEach(negociacao => this._listaNegociacoes.adiciona(negociacao));

      });

      service.obterNegociacoesDaSemanaRetrasada((erro, negociacoes) => {
        if (erro) {
          this._mensagem.text = erro;
          return;
        }

        negociacoes.forEach(negociacao => this._listaNegociacoes.adiciona(negociacao));
        this._mensagem.texto = 'Negociações importadas com sucesso';
      });
    });
  }

  apaga() {

    this._listaNegociacoes.esvazia();

    this._mensagem.texto = 'Negociações apagadas com sucesso';
  }

  _criaNegociacao() {

    return new Negociacao(
      DateHelper.textoParaData(this._inputData.value),
      this._inputQuantidade.value,
      this._inputValor.value);
  }
  _limpaFormulario() {

    this._inputData.value = '';
    this._inputQuantidade.value = '1';
    this._inputValor.value = '0.0'

    this._inputData.focus();
  }
}
6 respostas

Oi Kayan, tudo bem?

Tem como subir seu projeto para o Github? Provavelmente o problema não está em sua classe de NegociacaoController, está em algum lugar em que você chama essa classe ou talvez pode ter escrito algum nome errado.

Caso tente resolver por ai, tente ver em qual linha e arquivo está informando esse erro.

Olá, me desculpe a demora, tava aprendendo sobre o Git e Github, e estava dando alguns erros. Mas aqui está meu projeto, se tiver como me ajudar eu agradeço. https://github.com/KayanDenizo/Aluraframe

Oi kayan,

Você não upou o projeto corretamente, está somente os arquivos soltos e sem seus respectivos diretórios, também não vi a pasta onde fica a index.

Tenta tirar um print do erro com mais detalhes e coloca aqui. Ou se tiver muita disposição zipa esse projeto e coloca em algum lugar onde possa baixa-lo.

Eu tenho três palpites pra você investigar o erro. Em ordem do mais provável para o menos provável:

1 - Importou a classe NegociacaoController na ordem errada. Reveja a parte das importações, possa ser que você está chamando a NegociacaoController depois de algum arquivo que necessita dela. Se lembro bem, o arquvio app.js precisa de NegociacaoController, possa ser que você esteja importando oapp.js antes da NegociacaoController.

2 - Você não importou a NegociacaoController.

3- Você digitou algum nome errado.

Caso as dicas tenham te ajudado você me diz aqui.

Bons estudos.

Oi kayan,

O seu projeto está funcionando corretamente na minha máquina, o controller é carregado sem erros e ao adicionar uma nova negociação apresenta uma mensagem no console "interceptando adiciona". Tentou abrir em outro navegador? Às vezes pode ser um cache do seu navegador que esteja buscando uma versão antiga do seu projeto.

Olá, agora esta está aparecendo "interceptando adicionada". Mas quando eu clico em apagar ele não apagam, aparece que "NegociacaoController.apaga is not a function". E quando eu clico em importar negociações aparece "NegociacaoController.importaNegociacoes is not a function". Era para estar aparecendo isso? OBS: Estou no módulo 5 desse curso.