Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Pra que o model?

Pessoal, não entendi a necessidade do parâmetro 'model'... Podem me ajudar?

4 respostas

Boa tarde Orlando,

O model é a parte do modelo MVC que cria o molde dos objetos que vamos utilizar no desenvolvimento do nosso sistema. Se temos por exemplo um modelo bem definido da representação do nosso usuário evitamos que sejam criados usuários com características faltantes ou extras, se garantimos que todos os usuários são criados a partir do nosso modelo garantimos que todos eles são iguais.

abraços

Oi, Vinícius, valeu pela resposta, mas não é exatamente essa a dúvida... Queria saber porque model é um parâmetro que chama negociacoes.map.. De onde saiu esse model? É uma palavra reservada em JavaScript ou um parâmetro inventado?

Como ele sabe que tem que iterar por uma lista de negociações?

solução!

Pelo que eu entendi a dúvida é na classe NegociaçãoView.js. Essa classe tem um método "_update", esse método recebe um model como parâmetro. Model é apenas o nome do parâmetro, o nome poderia ser qualquer coisa, mas por semântica e fazer sentido com o que estamos trabalhando foi escolhido o nome "model". Esse model é passado na classe NegociacaoController.js no método adiciona que recebe uma lista de negociacoes e dentro dessa lista de negociacoes temos um array chamado negociações.

model.negociacoes

O "map" é um método que todo array possui, ele recebe uma função que itera sobre todos os itens do array fazendo as alterações solicitadas na função e depois devolve um novo array:

${model.negociacoes.map(n => {

      return `
        <tr>
            <td>${DateHelper.dataParaTexto(n.data)}</td>
            <td>${n.quantidade}</td>
            <td>${n.valor}</td>
            <td>${n.volume}</td>
        </tr>
      `
      })}

Mais sobre o método map aqui.

Se ainda não estiver claro recomendo rever as últimas aulas pois toda essa organização se trata de uma classe chamando métodos de outras e realmente pode ficar um pouco confuso.

Abraços

O nome é pouco semântico, de fato, mas entendi que o parâmetro chama a função 'get negociacoes()' da classe ListaNegociacoes.

De qualquer forma, obrigado pela ajuda.