Mein Code:
<li *ngFor="let item of list; let i=index" class="dropdown-item" (click)="onClick(item)">
<template [ngIf]="i<11">{{item.text}}</template>
</li>
Ich versuche, zu jedem Zeitpunkt nur 10 Listenelemente anzuzeigen. Wie in der Antwort hier vorgeschlagen , habe ich ngIf verwendet, aber dies führt dazu, dass leere Listenelemente (über 10) auf der Seite angezeigt werden.
slice:0:10
das ursprüngliche Array?slice
gibt eine Kopie zurück und wirkt sich nicht auf das ursprüngliche Array aus| slice:0:10
Pipe ist großartig. Sie hat mir geholfen, eine Liste mit der Schaltfläche "Mehr anzeigen" zu erstellen, dieslices
das zweite Argument des ' inkrementiert .Das funktioniert sehr gut:
quelle
Nehmen wir zum Beispiel an, wir möchten nur die ersten 10 Elemente eines Arrays anzeigen. Dies können wir mit der SlicePipe folgendermaßen tun:
quelle
Sie können direkt
slice()
auf die Variable anwenden . StackBlitz Demoquelle
Zusätzlich zur Antwort von @ Gunter können Sie trackBy verwenden , um die Leistung zu verbessern. trackBy übernimmt eine Funktion mit zwei Argumenten: index und item. Sie können von der Funktion einen eindeutigen Wert im Objekt zurückgeben. Es wird beendet, bereits angezeigte Elemente in ngFor erneut zu rendern. Fügen Sie in Ihrem HTML-Dokument trackBy wie folgt hinzu.
Und schreiben Sie eine solche Funktion in Ihre .ts-Datei.
quelle
html
Typoskript
CSS
quelle
In Ihrer ts-Datei
quelle