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