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

Quem é "model" no jogo do bicho?

Tenho as seguintes classes:

class NegociacaoController {

    constructor() {
        let $ = document.querySelector.bind(document);
        this._inputData = $('#data');
        this._inputQuantidade = $('#quantidade');
        this._inputValor = $('#valor');
        this._listaNegociacoes = new ListaNegociacoes(model => 

            this._negociacoesView.update(model));

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

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

    }

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

        this._mensagem.texto = 'Negociação adicionada com sucesso!';
        this._mensagemView.update(this._mensagem)
        this._limpaFomulario();
    }

    apaga() {

        this._listaNegociacoes.esvazia();

        this._mensagem.texto = 'Negociações apagadas com sucesso!';
        this._mensagemView.update(this._mensagem);
    }

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

    _limpaFomulario() {
        this._inputData.value = '';
        this._inputQuantidade.value = 1;
        this._inputValor.value = 0.0;
        this._inputData.focus();
    }
}





class ListaNegociacoes {
    constructor(armadilha) {

        this._negociacoes = [];
        this._armadilha = armadilha;

    }

    adiciona(negociacao) {
        this._negociacoes.push(negociacao);
        this._armadilha(this);

    }

    get negociacoes() {

        return [].concat(this._negociacoes);
    }

    esvazia() {

        this._negociacoes = [];
        this._armadilha(this);

    }

}

Não entendi o valor de model na seguinte linha:

 this._listaNegociacoes = new ListaNegociacoes(model => 

            this._negociacoesView.update(model));
1 resposta
solução!

Diego, bom dia!

O model, nesse caso é a _armadilha, ou seja, a função que será chamada sempre que for esvaziar ou adicionar uma nova negociação.

Espero ter ajudado e bons estudos! :D