我如何能得到一个反向数组在角? 我试图使用orderBy过滤器,但它需要一个谓词(例如。'name')排序:

<tr ng-repeat="friend in friends | orderBy:'name':true">
      <td>{{friend.name}}</td>
      <td>{{friend.phone}}</td>
      <td>{{friend.age}}</td>
<tr>

是否有一种方法可以反转原始数组,而不需要排序。 像这样:

<tr ng-repeat="friend in friends | orderBy:'':true">
      <td>{{friend.name}}</td>
      <td>{{friend.phone}}</td>
      <td>{{friend.age}}</td>
<tr>

当前回答

你也可以使用.reverse()。它是一个原生数组函数

<div ngn -repeat=“朋友们的朋友。反向()”>{{朋友}</div>

其他回答

你也可以使用.reverse()。它是一个原生数组函数

<div ngn -repeat=“朋友们的朋友。反向()”>{{朋友}</div>

我补充了一个没有人提到的答案。如果你有服务器,我会试着让服务器来做。如果服务器返回大量记录,客户端过滤可能是危险的。因为您可能会被迫添加分页。如果你有来自服务器的分页,那么客户端筛选顺序,将在当前页面。这会让最终用户感到困惑。因此,如果您有一个服务器,那么将订单与调用一起发送,并让服务器返回它。

有用的提示:

你可以用普通Js来反转你的数组:

注意:反向是破坏性的,所以它会改变你的数组,而不仅仅是变量。

我建议使用数组本机反向方法总是比创建过滤器或使用$index更好的选择。

<div ng-repeat="friend in friends.reverse()">{{friend.name}}</div>

Plnkr_demo。

从Angular 1.4.5开始,orderBy过滤器执行稳定的排序。(参见GitHub pull request https://github.com/angular/angular.js/pull/12408)

因此,使用常量谓词和反向设置为true就足够了:

<div ng-repeat="friend in friends | orderBy:0:true">{{friend.name}}</div>