Mi código:
<li *ngFor="let item of list; let i=index" class="dropdown-item" (click)="onClick(item)">
<template [ngIf]="i<11">{{item.text}}</template>
</li>
Estoy tratando de que solo se muestren 10 elementos de lista en cualquier momento. Como se sugiere en la respuesta aquí , usé ngIf pero esto da como resultado que los elementos de la lista vacíos (más allá de 10) aparezcan en la página.
slice:0:10
la matriz original?slice
devuelve una copia y no afecta la matriz original| slice:0:10
tubería, es genial, me ayudó a construir una lista con un botón "Ver más" que incrementa elslices
segundo argumento.Esto funciona muy bien:
fuente
Puede aplicar directamente
slice()
a la variable. Demostración de StackBlitzfuente
Por ejemplo, digamos que queremos mostrar solo los primeros 10 elementos de una matriz, podríamos hacer esto usando SlicePipe así:
fuente
Además de la respuesta de @ Gunter, puede usar trackBy para mejorar el rendimiento. trackBy toma una función que tiene dos argumentos: índice y elemento. Puede devolver un valor único en el objeto de la función. Dejará de renderizar los elementos ya mostrados en ngFor. En su html agregue trackBy como se muestra a continuación.
Y escribe una función como esta en tu archivo .ts.
fuente
html
mecanografiado
css
fuente
En su archivo ts
fuente