Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

A classe Bind não funciona

Olá!

Estou tendo problemas para implementar a classe Bind. Pelo que eu estou entendendo, por algum motivo ele não cria o objeto dentro do proxy, e consequentemente não consegue executar os métodos do objeto.

Trecho da classe NegociacaoController:

this._negociacoesView = new NegociacoesView($('#negociacoesView'));

//Com a classe Bind fazemos a "ligação" entre a "listaNegociacoes" e a "negociacoesView",
//refatorando a responsabilidade de criar a Proxy.
this._listaNegociacoes = new Bind(
    new ListaNegociacoes(),
    this._negociacoesView,
    ['adiciona', 'esvazia']
);

console.log(this._listaNegociacoes);

this._mensagemView = new MensagemView($('#mensagemView'));

//Com a classe Bind fazemos a "ligação" entre a "mensagem" e a "mensagemView",
//refatorando a responsabilidade de criar a Proxy.
this._mensagem = new Bind(
    new Mensagem(),
    this._mensagemView,
    ['texto']
);

console.log(this._mensagem);

Classe Bind:

class Bind {
    constructor(model, view, props) {
        //Criamos o proxy atravéz desse construtor, evitando todo aquele código no controller.
        let proxy = new ProxyFactory(model, props, (model) => view.update(model));

        //Atualizamos a view pela primeira vez para aparecer a tabela.
        view.update(model);

        //Em JS o construtor não precisa retornar a própria classe, ela pode retornar outra coisa.
        //Neste caso estamos instanciando a proxy e retornando ela.
        return proxy;
    }
}
1 resposta
solução!

Menos de um minuto depois de enviar o tópico, eu encontrei o erro kkkkkkkkkk.

Estava chamando o construtor de ProxyFactory para criar a proxy mas ele não tem construtor, tem o método estático "create".