Ich versuche, meine Ergebnismengen auf eine feste Anzahl zu beschränken. Ich kann limitTo
mit ng-repeat
verwenden, aber dies beschränkt Elemente unabhängig von ihrer aktuellen Sichtbarkeit und entfernt Elemente aus dem DOM. Ich möchte auf eine Anzahl sichtbarer Elemente beschränken und gleichzeitig alles im DOM behalten.Verwenden von ng-repeat und limitTo, um die Anzahl der angezeigten sichtbaren Elemente zu begrenzen
Hier ist der aktuelle Code, den ich habe. Mein Ziel ist es immer nicht mehr als 50 Artikel in der Liste zu zeigen, obwohl items
500 Artikel enthält.
<div ng-repeat="item in items | limitTo: 50">
<div ng-show="item.visible">
<p>item.id</p>
</div>
</div>
Dies wird zu 50 Elemente zunächst begrenzen, aber wenn ich die Liste filtern (nach item.visible auf einigen Positionen zu verändern), zeigt die Liste nie Elemente im Bereich von 50 bis 500 und zeigt stattdessen weniger als 50 Artikel. Was ist der richtige Weg, um ein ng-repeat
zu begrenzen, so dass es nur sichtbare Elemente in Richtung der Limit-Beschränkung zählt?
Das ist nicht dasselbe, da Filter Elemente aus dem DOM entfernen (wie ng-if), anstatt nur die Sichtbarkeit zu ändern (wie ng-show). Ich suche nach einer Lösung, die mit ng-show funktioniert. – Bill
Aus welchem Grund möchten Sie versteckte Elemente im DOM behalten? – bekite
Ständig hinzufügen und entfernen ist langsam. Bei ng-show erfolgt die Filterung sofort, mit ng - wenn es einen leichten Schluckauf gibt, bevor die aktualisierten Ergebnisse angezeigt werden. – Bill