Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

248
Visualizações
el desplazamiento virtual angular no vuelve a representar la lista cuando se agrega/elimina un elemento de la lista

Actualmente es parte de mi proyecto. Si hace clic en un elemento de la lista, se alterna la visibilidad del elemento. Muchas listas parecen mostrarse bien con el desplazamiento virtual del ángulo, pero hay un problema cuando se elimina una gran cantidad de elementos de la lista. El desplazamiento virtual no se actualiza, dejando espacio libre en el medio. Se requiere actualizar la ventana gráfica cada vez que se agrega o elimina un elemento. Los datos de la lista que uso no son datos observables. Por favor, dime cómo resolver el problema.

https://stackblitz.com/edit/angular-ivy-o9dhar?file=src%2Flist%2Flist.component.html

mi problema

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Tendrás que actualizar la fuente para que funcione. El problema de alternar es que deberá reemplazarlo con algo de altura similar. Tienen altura dinámica en experimental en angular cdk desde hace bastante tiempo. Pero para eliminar puedes hacer algo simple como esto. La parte clave es simplemente actualizar la fuente para que pueda volver a representar la lista

 export class ListComponent { @Input() ListData: any[]; remove(element) { this.ListData = this.ListData.filter((x) => x != element); } }

artículo

 export class ListItemComponent { @Input() element; @Output('remove') onListItemClicked = new EventEmitter(); toggleVisibility() { this.onListItemClicked.emit(this.element); } }

lista.componente.html

 <cdk-virtual-scroll-viewport class="list-container" itemSize="30"> <div *cdkVirtualFor="let data of ListData"> <list-item [element]="data" (remove)="remove($event)"></list-item> </div> </cdk-virtual-scroll-viewport>

https://stackblitz.com/edit/angular-ivy-tntnpm?file=src%2Flist%2Flist.component.ts

Del comentario: Agregar aún establece un nuevo objeto aquí es una forma simple basada en su enlace de stackblitz.

 const newItem = { id: Number(this.input.nativeElement.value) + 1, title: `item ${Number(this.input.nativeElement.value) + 1}`, isShow: true, }; this.favoriteList = [newItem,...this.favoriteList] // instead of splice
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda