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;
}
}