javascript - Hur kan jag sortera mina data efter namn i en *NgFor-lista?
Jag arbetar på ett nytt projekt i Angular 6.
Jag har en lista över studenter med en *NgFor:
(html)
<tr *ngFor="let kk of Repdata | filterdata: queryString : 'name' ; let ind = index">
<td>{{ind + 1}}</td>
<td>{{kk.name}}</td>
<td>{{kk.prenom}}</td>
(filterdata används för en sökfält)
typescript :
GetUser(){
return this.http.get('http://localhost:8080/api/getUser/')
.map((response: Response) => response.json())
}
javascript :
app.get("/api/getUser",function(req,res){
model.find({},function(err,data){
if(err){
res.send(err);
}
else{
res.send(data);
}
});
})
I min tabell har jag mina data ordnade efter id, men jag vill ordna dem efter namn. Jag vet inte hur man gör.
Svar #1
om du bara vill att dina data ska sorteras efter namn utanför databasen kan du använda sort()-funktionen som förklaras här Sortera array efter förnamn (alfabetiskt) i Javascript
du kan också använda Sort-funktionen som tillhandahålls av mongodb eftersom det verkar som att du använder mongoose. https://docs.mongodb.com/manual/reference/method/cursor.sort/
om du bara vill sortera det i Angular-vyn kan du använda en anpassad sorteringspipe som förklaras här: Angular 2 OrderBy Pipe
redigera :
Du bör inte använda Pipes för filtrering/sortering eftersom de är mycket ineffektiva som anges här: https://angular.io/guide/pipes#appendix-no-filterpipe-or-orderbypipe
Svar #2
Du kan utföra sortering genom att installera DataTable i din app. Det kan också användas för att utföra paginering.
Du kan installera DataTable genom att köra följande kommando i Angular 6:
npm i angular-6-datatable --save
För en komplett guide, gå igenom länken nedan:
https://www.npmjs.com/package/angular-6-datatable
