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

"Renderizar" a view após alterar parâmetros do ngFor

Estou tentando desenvolver uma aplicação própria que usa basicamente todos os ensinamentos que aprendi durante os cursos de Ionic e Angular aqui, mas fiquei com uma dúvida.

Minha dúvida é. Eu faço um ngFor com uma Array para exibir alguns dados, mas caso eu queira alterar para uma segunda Array, eu devo renderizar novamente a página? Devo esconder o primeiro e criar um segundo ngFor? Ou devo alterar os dados do ngFor através de um Pipe e renderizar novamente a view?

Obrigado, abraços!

4 respostas

Bom dia.

Pode falar um pouco mais? Não ficou claro para mim sua intenção.

Eu estou fazendo uma view que aparece uma lista de itens, mas através de um menu, a pessoa deve poder selecionar se ela quer ver a lista 1, a lista 2, ou a 3.... etc. São várias listas. Ao invés de "pintar" todas de uma só vez na view, ele faz o "ngFor" em cima da primeira e eu queria que o usuário pudesse trocar conforme ele selecionasse no menu.

O problema é que não entendi se devo alterar o valor do ngFor e renderizar a view novamente, ou se devo "pintar" todas as listas na mesma view e mostrar uma ou outra conforme o usuário seleciona.

Minha dúvida é: Quando alteramos algum dado, a gente deve "renderizar" toda a view novamente, ou se a melhor estratégia é usar propriedades como a "hide" para esconder o que não for mais usado. Não sei se ficou muito claro o que estou tentando fazer.

solução!

Se eu entendi bem, que tal usar o *ngFor para as três listas. Porém, você utilizará um *ngIf para deixar visível apenas aquela que você deseja que o usuário veja no momento.

Nada o impede de na ação do usuário, jogar uma nova lista para a propriedade utilizada no `ngFor, fazendo com que em um único lugar a lista seja exibida com novos dados.

A segunda poluirá mesmo seu template, pois terá apenas um *ngFor.

Sucesso e bom estudo meu aluno!

Interessante, obrigado pelas respostas. Vou avaliar e ver como consigo desenvolver melhor a ideia.

Obrigado!