Mój kod:
<li *ngFor="let item of list; let i=index" class="dropdown-item" (click)="onClick(item)">
<template [ngIf]="i<11">{{item.text}}</template>
</li>
Staram się, aby w dowolnym momencie było wyświetlanych tylko 10 elementów listy. Jak zasugerowano w odpowiedzi tutaj , użyłem ngIf, ale skutkuje to wyświetlaniem pustych elementów listy (powyżej 10) na stronie.
slice:0:10
wpływa na oryginalną tablicę?slice
zwraca kopię i nie wpływa na oryginalną tablicę| slice:0:10
Rura, jest świetny, bardzo mi pomógł skonstruować listę z „Zobacz więcej” przycisk, który zwiększaslices
„s drugi argument.Możesz bezpośrednio zastosować
slice()
do zmiennej. Demo StackBlitzźródło
Działa to bardzo dobrze:
źródło
Na przykład, powiedzmy, że chcemy wyświetlić tylko pierwsze 10 elementów tablicy, możemy to zrobić za pomocą SlicePipe w następujący sposób:
źródło
Oprócz odpowiedzi @ Guntera możesz użyć trackBy, aby poprawić wydajność. trackBy przyjmuje funkcję, która ma dwa argumenty: indeks i element. Możesz zwrócić unikalną wartość w obiekcie z funkcji. Spowoduje to zatrzymanie ponownego renderowania już wyświetlonych elementów w ngFor. W swoim html dodaj trackBy jak poniżej.
I zapisz taką funkcję w swoim pliku .ts.
źródło
html
maszynopis
css
źródło
W twoim pliku ts
źródło