5
respostas

MVC com jquery

Olá, tudo bom?

Estou tentando implementar o modelo MVC visto nessa aula, mas com JQuery ao invés de utilizar apenas javascript.

Aqui, o código da aula com javascript (feito pelo professor), o código que fiz com jquery antes dessa aula de implementação do MVC, funcionando, e o código onde tentei implementar o modelo MVC, com o erro "Uncaught TypeError: NegociacaoView is not a constructor":

https://github.com/andreichiro/alura

Acredito que o principal erro esteja na criação da tabela pelo NegociacaoView, sendo que eu estava pegando os elementos da tabela diretamente através do jquery no NegociacaoController.

Desde já, muito obrigado para quem puder me socorrer!

5 respostas

Fala ai André, tudo bem? Vamos lá:

TypeError: NegociacaoView is not a constructor

Esse erro é porque a sua classe foi definida como Negociacaoview repare o v de view está minusculo, sendo assim, não vai bater com o seu código.

Pode corrigir o nome da classe de :Negociacaoview para NegociacaoView

TypeError: Cannot read property 'negociacoes' of undefined

Esse segundo erro ocorre porque no lugar onde você chama a função update da NegociacaoView, você está passando um atributo que não existe:

this.NegociacaoView.update(this.negociacao);

A classe NegociacaoController não tem esse atributo negociacao então vai chegar o valor undefined para a função template e ela vai tentar fazer model.negociacoes.map, porém, o model está undefined.

Espero ter ajudado.

Matheus, tudo bom?

Obrigado. Fiz os ajustes que você apontou e também alguns outros.

Agora, não estou conseguindo implementar o "view".

Nesse código, deixei a minha última tentativa de instalar a view:

https://github.com/andreichiro/alura

Você poderia dar uma olhada no código da versão sem view (o outro código é o código da aula)?

Pelo que entendi, a ideia seria fazer com que os métodos "adicionaCampos" e adicionaTitulos" da classe Controller sejam migrados para uma classe de NegociacaoView, que teria um método de template(method) que chamaria a adicionaCampos e também a adicionaTitulos, tudo no construtor do Controller.

Não sei se entendi bem a ideia do modelo MVC, então tentei desenvolver a view inicialmente apenas colocando os métodos nessa nova classe e chamando-as no construtor, e então instanciando um objeto dessa classe. As funções, porém, não foram chamadas, então apaguei essa parte.

Muito obrigado!

Fala ai André, tudo bem? Infelizmente não consegui extrair o projeto sem view, eu reparei que ele está no formato .zipx.

Consegue mudar para apenas .zip?

Desculpa a demora, tinha arquivado o email com suas resposta sem querer.

Fico no aguardo.

Matheus, tudo bom? Subi o arquivo .zip!

Fala André, dei uma olhada no projeto, tudo funcionou certinho.

Era para eu ver a estrutura? Avaliar a arquitetura? Tem algum erro?

Abraços e bons estudos.