/ / AngularJS: Der orderBy-Filter, der die Reihenfolge der Tabellenzeilen umkehrt, funktioniert nicht

AngularJS: orderBy Filter zum Umkehren der Reihenfolge der Tabellenzeilen funktioniert nicht - angularjs, datatable, angularjs-ng-repeat, html-Tabelle, angularjs-orderby

Ich schreibe eine Web-App, mit der Benutzer posten könnenzu einem Server und das Frontend zeigt alle Beiträge an. Wenn ein Benutzer jedoch einen Beitrag hinzufügt, wird dieser zuerst an den unteren Rand aller Beiträge verschoben. Ich möchte, dass der neueste Beitrag stattdessen ganz oben steht.

Ich habe versucht mit:

ng-repeat="post in posts | orderBy:"-""

und

ng-repeat="post in posts | orderBy:"-index""

Dies ist mein Code für die Tabelle:

         <div ng-repeat="post in posts | orderBy:"-"">
<table>
<tr>
<td>{{$index}}</td>

<td>{{post.username}}</td>

<td>{{post.title}}</td>

<td>{{post.content}}</td>

<td>{{post.comment}}</td>
</tr>
</table>
</div>

Diese beiden Ansätze funktionieren jedoch nicht. Gibt es eine andere Art und Weise?

Antworten:

0 für die Antwort № 1

Sie können sie entsprechend ihrer Position im Unsortierten bestellen posts Array. Sie können dies mit einer Funktion wie folgt tun:

$scope.newestFirst = function(post) {
return -$scope.posts.indexOf(post);
}

Und dann im HTML: <div ng-repeat="post in posts | orderBy:newestFirst">

Hier ist ein Geige. Mit dem newestFirst Sortieren werden neue Beiträge am Anfang der Liste hinzugefügt.

Sie werden feststellen, dass selbst wenn Sie die Reihenfolge der Beiträge ändern, die Indexspalte gleich bleibt. Es scheint so $index gibt den Index jedes Beitrags in seinem Strom Sortieren. Bestellung von $index Es scheint immer noch, die Beiträge nach ihrem Index im Quell-Array zu sortieren, aber das Sortieren nach einer Zeichenfolge von Kauderwelsch führt zu demselben Ergebnis.