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 № 1Sie 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.