Wie kann ich eine Anzahl von Zeilen aus einer ng-repeat?
Ich habe eine Tabelle auf meiner web-Seite, der gefüllt ist mit Daten wie diesen:
<tr data-ng-repeat="row in grid.data | filter:isQuestionInRange">
<td>{{ row.problemId }}</td>
</tr>
Gibt es eine Möglichkeit, dass ich die Anzahl der Zeilen in der Tabelle angezeigt Fußzeile. Beachten Sie, dass ich im Stande sein will, zeigen die Zeilen nach, die gefiltert wurden nicht nur die Zeilenanzahl, die aus dem raster.Daten-array.
- Du meinst, die dies zeigen: '{{(grid.Daten | filter:isQuestionInRange).Länge}}'?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie könnten überprüfen Sie die Länge des gefilterten Arrays wie:
Können Sie speichern die Ergebnisse der filter und dann die Länge der, die, zum Beispiel mit
results
hier:Dies hat den performance-Vorteil, dass Sie nur benötigen, um führen Sie den filter einmal. Es ist auch nützlich für andere Situationen, in denen Sie beiden, gefilterten und ungefilterten Ergebnisse innerhalb Ihrer
ng-repeat
.results.length
ist auch viel klarer zu Lesen als(grid.data | filter:isQuestionInRange).length
Ich empfehlen, dass Sie die $filter-service in Ihrem controller, wie gezeigt in dieses Beispiel plunk:
In Ihrem Fall:
Diese Weise brauchen Sie den Filter nur einmal und vermeiden Sie die Einführung neuer Bereich Felder in der Vorlage, das macht den code schwer zu testen und zu verstehen.
Wiederholen Sie über
filteredRows
im template und{{ filteredRows.length }}
gibt Sie die Anzahl der sichtbaren Zeilen.