Wie filtern und aktualisieren ngtable Paginierung auf eine benutzerdefinierte fiter
Möchte ich filter ngtable basierend auf Wert aus dropdown box.
$scope.tableParams = new ngTableParams({
page: 1, //show first page
count: 5, //count per page
sorting: {
name: 'asc' //initial sorting
},
}, {
total: tabledata.length, //length of data
getData: function($defer, params) {
//use build-in angular filter
filteredData = params.filter() ?
$filter('filter')(tabledata, params.filter()) :
tabledata;
var orderedData = params.sorting() ?
$filter('orderBy')(filteredData, params.orderBy()) : filteredData;
$defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
}
});
Habe ich geschrieben mein vollständiger code auf plunker: http://plnkr.co/edit/YbCe5Y6qIxN18yHCrzwW?p=preview.
Problem, das Auftritt, ist, dass die Anzahl der Seiten bleibt der gleiche, aber wenn einige meiner Ergebnisse wurden auf Seite 5 bleiben Sie dort. Im Grunde habe ich die leeren Seiten und unter Ihnen, werden Seiten mit filtern Ergebnis (es gibt keine Seite "downsizing").
Habe ich versucht zu integrieren, meine benutzerdefinierte filter - viewFilter aber ich war nicht erfolgreich bei der Herstellung, dass es funktioniert. Dies ist ein weiterer plunker Beispiel, wo die Filterung basic (basierend auf Spalte name) und arbeitet: http://plnkr.co/edit/CbmbXTXukNxC1ZzkJNKO?p=preview
Wer weiß, ad könnte mir helfen mit der integration dieser benutzerdefinierten filter? Dank
- Vielleicht wird dies helfen: $scope.tableParams.reload();
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie sind nicht berufen, den filter in der Tabelle, Sie sind nur die Filterung der Seite, die Sie sind auf. Um zu lösen Ihr Problem, Sie sollten aufrufen des filter-Funktion von ng-Tabelle aus, die Sie viewFilter Funktion. Ich habe einige änderungen an Ihrem code und funktioniert wie erwartet. Im controller habe ich ändern Sie die Werte der viewOptions, ich habe einen filter in der Tabelle und ich habe aufgerufen die filter-Funktion von Ihrem viewFilter. Nun sieht es so aus:
In der html-ich rufe die viewFilter-Funktion jedes mal, die dropdown verändert, und ich habe entfernt den filter aus der Tabelle. Nun sieht es so aus: `
Seite: {{tableParams.Seite()}}
Anzahl pro Seite: {{tableParams.count()}}
- Sortierung: {{tableParams.Sortieren()|json}}
Filter: {{tableParams.filter()|json}}
Daten: {{tableParams.bestellt()|json}}
Um das Problem zu beheben, ändern
$scope.view.type = '';
und stattdessen$scope.view = { type: '' };