AngularJS: ngTable mit json-Daten: filtern und Sortieren funktioniert nicht
Ich versuche, füllen Sie Daten von einem REST-webservice in einer Tabelle mit ngTable.
Daten sind gezeigt, aber Sie sind weder sortiert, noch sortierbar. Filterung gibt immer leere Liste.
Hier ist ein link zu der API, die ich bin Referenzierung: http://bazalt-cms.com/ng-table/
JS:
$scope.dataInstances = [];
$scope.getDataInstances = function() {
$http({
method : 'GET',
url : '/rest/v1/data/instances',
headers : {
"Authorization" : "Basic " + btoa("USERNAME" + ":" + "PASSWORD")
},
})
.success(function(data, status) {
$scope.dataInstances = data;
$scope.tableParams.reload();
//just some logging
console.log(JSON.stringify(data));
})
.error(function(data, status) {
alert("Error: " + status);
});
};
$scope.tableParams = new ngTableParams({
page: 1, //show first page
count: 10, //count per page
filter: {
},
sorting: {
date: 'asc' //initial sorting
}
},
{
total: $scope.dataInstances.length, //length of data
getData: function($defer, params) {
//use build-in angular filter
var filteredData = params.filter() ?
$filter('filter')($scope.dataInstances, params.filter()) :
$scope.dataInstances;
var orderedData = params.sorting() ?
$filter('orderBy')(filteredData, params.orderBy()) :
$scope.dataInstances;
params.total(orderedData.length); //set total for recalc pagination
$defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
}
});
HTML:
<div ng-controller="myController" ng-init="getDataInstances()">
<table ng-table="tableParams" show-filter="true" class="table table-condensed">
<tr ng-repeat="dataInstance in dataInstances">
<td data-title="'Name'" sortable="'name'" filter="{ 'name' : 'text'}">{{dataInstance.name}}</td>
<td data-title="'Date'" sortable="'date'" filter="{ 'date' : 'text'}">{{dataInstance.date | date:'dd.MM.yyyy HH:mm' }}</td>
<td data-title="'Type'" sortable="'type'" filter="{ 'type' : 'text'}">{{dataInstance.type}}</td>
</tr>
</table>
</div>
Haben Sie irgendwelche Tipps, wie man diese arbeiten?
Versucht, verschiedene andere mögliche Lösungen - und keine gearbeitet - wie:
- asynchron Auffüllen einer AngularJS ngTable mit json-Daten
- Laden von JSON über AJAX mit NgTable Parameter
- Sortierung ngTable funktioniert nicht, wenn die überschrift geklickt wird
Vielen Dank im Voraus!
BEARBEITEN: http://plnkr.co/edit/1Rp9szNtw8T3GtwpNaZG?p=preview
ist das filtern und Sortieren der Arbeit für
Nein. Es funktioniert nicht im Allgemeinen.
plunk wird sinnvoll sein, hier können Sie einrichten?
bearbeitet post mit link zu zupfen
dies war sehr hilfreich
type
und name
Spalten?Nein. Es funktioniert nicht im Allgemeinen.
plunk wird sinnvoll sein, hier können Sie einrichten?
bearbeitet post mit link zu zupfen
dies war sehr hilfreich
InformationsquelleAutor Second2None | 2014-10-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Endlich Dinge, die das arbeiten mit
angular 1.2.20
undng-Table 0.3.1
.Werfen Sie einen Blick auf die Plunker: Sortierung und Filterung über verschachtelte json-Objekte und Termine.
Dank Kostia Mololkin für seine Bemühungen!
InformationsquelleAutor Second2None
bewerben Sie sich
ng-repeat
Richtlinie zu$data
variable,die verwendet wird, durchngtable
Bearbeiten
Sortieren
habe ich es was Los auf der
params.orderBy()
Herstellung dieses stechen zum Beispiel"-type"
und$filter("OrderBy")
können nicht analysieren,diese müssen nur"type"
string und wenn Sie wollen, umkehren Sie zu tun haben$filter('orderBy')(filteredData, "type",-1)
dieser stringngTable
verwendet$data
als variable war hilfreich.ja,richtig nur die erste Zeit zu arbeiten und dann doch nicht
untersuchen
Aktualisiert Plunk mit ein paar mehr Daten. Die Filterung funktioniert - ich hav keine Ahnung, warum. Filterung
date
gibt nicht die ursprünglich erwartete Werte: Datum-filter arbeitet auf der timestamp ausjson
und nicht auf der formatierten Datum-string. Eine Idee, wie man das auch fix?ich habe es Sie festlegen, benutzerdefinierte array-filter für die Sammlung zu tun, einige gute Erklärung hier toddmotto.com/everything-about-custom-filters-in-angular-js
InformationsquelleAutor Kostia Mololkin
Habe diese ausgeführt.
Scheint, dass es riesige Unterschiede, die mit verschiedenen Versionen von ng-Tabelle und angular.js.
angular 1.2.20
undng-Table 0.3.0
arbeiten gut zusammen auf nicht verschachtelte json-Daten.angular 1.2.20
undng-Table 0.3.1
gut funktioniert die Sortierung von verschachtelten Daten aber nicht filtern (Plunk)Lösungen für dieses?
Bearbeiten:
angular 1.2.3
undng-Table 0.3.1
wäre die Lösung, aber ichangular 1.2.20
InformationsquelleAutor Second2None