Fala ai Lara, tudo bem? Dei uma olhada no projeto, vamos aos pontos de correções:
- No
onsubmit
do form
você está informando a classe do controller e não a nova instância dele:
<form onsubmit="InformacoesController.adciona(event)">
Repare que o I
de Informacoes
está maiusculo, mas, a instância está:
let informacoesController = new InformacoesController();
Ou seja, o correto seria;
<form onsubmit="informacoesController.adciona(event)">
- Sua classe
Informacao
inicializa varios atributos no construtor:
constructor(nome,peso,altura,gordura,imc){
this.nome = nome;
this.peso = peso;
this.altura = altura;
this.gordura = gordura;
}
Mas, eles apenas possuem get
, você poderia criar o set
para eles ou apenas apagar os get
. Por simplicidade eu apaguei os get
e a classe ficou:
class Informacao {
constructor(nome,peso,altura,gordura,imc){
this.nome = nome;
this.peso = peso;
this.altura = altura;
this.gordura = gordura;
}
get imc(){
return this.peso / (this.altura*this.altura)
}
}
- No controller faltou atualizar a view após adicionar uma nova informação no
array
:
adciona(event){
event.preventDefault();
this.listaInformacoes.adciona(this.criaInformacao());
this.informacoesView.update(this.listaInformacoes) // adiciona essa linha
this.limpaFormulario();
}
Acho que é isso (se eu não esqueci de nada).
Espero ter ajudado.