如何在* NgFor列表中按名称对数据排序?

时间:2018-09-11 09:38:25

标签: javascript html angular typescript

我正在研究Angular 6上的一个新项目。

我有一个带有* 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用于seachbar)

打字稿:

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);
                  }
          });
  })

在我的表中,我的数据按ID排序,但我想按名称排序。我不知道该怎么办。

2 个答案:

答案 0 :(得分:2)

如果只希望按名称在数据库外部对数据进行排序,则可以使用sort()函数,如此处Sort array by firstname (alphabetically) in Javascript

所述

您还可以使用mongodb提供的Sort函数,因为您似乎正在使用mongoose。 https://docs.mongodb.com/manual/reference/method/cursor.sort/

如果您只想在Angular视图中对其进行排序,则可以按照以下说明使用自定义排序管道:Angular 2 OrderBy Pipe

编辑:

您不应该使用管道进行过滤/排序,因为它们表现不佳,如此处所述:https://angular.io/guide/pipes#appendix-no-filterpipe-or-orderbypipe

答案 1 :(得分:0)

您可以通过在应用程序中安装DataTable来执行排序。它也可以用来执行分页。

您可以通过在角度6中运行以下命令来安装DataTable:

npm i angular-6-datatable --save

有关完整的指南,请通过以下链接:

https://www.npmjs.com/package/angular-6-datatable