let self = this;
this._listaNegociacoes = new Proxy(new ListaNegociacao(), {
get(target, prop, receiver){
if(['adiciona', 'esvazia'].includes(prop) && typeof(target[prop]) == typeof(Function) ) {
return function(){
return Reflect.apply(target[prop], target, arguments);
self._negociacaoView.upDate(target);
}
}
return Reflect.get(target, prop, receiver);
}
});
adiciona(event){
event.preventDefault();
this._listaNegociacoes.adiciona(this._criaNegociacao());
console.log(this._listaNegociacoes._negociacoes); //** está exibindo as negociações no console**
this._negociacaoView.upDate(this._listaNegociacoes); //** fiz esse teste para ver se dessa forma o negociacoesView.upDate receberia as listas de negociaçoes **
this._mensagemView.upDate(new Mensagem("Negociação adicionada com sucesso!"));
this._limpaForm();
}
upDate(modelo){
console.log(`imprime objeto lista: ${modelo.negociacoes}`); // **através desse console pude perceber que quando o upDate foi realizado pelo trap do proxy de listNegociacoes imprimiu undefined, mas quando realizado no método adiciona do controle como exposto acima imprimiu [object Object]**
this._elemento.innerHTML = this.template(modelo);
}