angewandt habe ich dieses Beispiel: https://jsfiddle.net/3noebzgr/1/aktualisiert paginierte Tabelle nach Filter AngularJS
Alles funktioniert, außer wenn ich durch die Trikot-Nummer filtern kann ich nicht die Paginierung aktualisieren. Wenn ich also nach den Trikotnummern 1-3 suche, ist Trikot 1 auf Seite 1, Trikot 2 auf Seite 2 und Trikot 3 auf Seite 4, so dass Seite 3 leer ist. Ich möchte, dass die Tabelle neu paginiert wird, damit die gefilterte Liste auf einer Seite angezeigt wird (oder mehr, je nach Anzahl der Elemente). Das ist mein Paginieren Funktion:
$scope.paginate = function(value) {
var begin, end, index;
begin = ($scope.currentPage - 1) * $scope.numPerPage;
end = begin + $scope.numPerPage;
index = $scope.players.indexOf(value);
return (begin <= index && index < end);
};
Dies ist, wo es angewendet wird:
<tr ng-repeat="player in players | orderBy:sortType:sortReverse | filter:byRange('Number', minNum.Number, maxNum.Number) | filter:paginate">
<td>{{ player.Name }}</td>
<td>{{ player.Number }}</td>
<td>{{ player.Position }}</td>
<td>{{ player.Team }}</td>
</tr>
Die Filter:
<select name="minNum" ng-model="minNum" ng-options="player.Number for player in players | orderBy:'Number'">
<option value="">All</option>
</select>
und
<select name="maxNum" ng-model="maxNum" ng-options="player.Number for player in players | orderBy:'Number'">
<option value="">All</option>
</select>
Ich habe andere versucht Stapel ov Erflow-Vorschläge, aber keine hat bisher funktioniert.
Dies funktioniert, um alles auf einer Seite anzuzeigen, aber es tut dies durch Entfernen der Seitennummerierung. Gibt es eine Möglichkeit, die Paginierung beizubehalten, aber alles auf die gleiche Seite zu verschieben oder wenn die gefilterte Liste größer ist als die 'numPerPage', einfach mit der aktuellen Liste neu paginieren? – jcalton88