Angularjs orderBy(使用带反向和多个字段的默认顺序)

时间:2014-07-10 19:41:07

标签: javascript angularjs sorting

我目前正在使用Angular网站上提供的示例orderBy:https://docs.angularjs.org/api/ng/filter/orderBy

并调整它以创建此JSFiddle:http://jsfiddle.net/LErNA/1/

<tr>
  <th><a href="" ng-click="reverse=false;order('name', false)">Name</a>
    (<a href="" ng-click="order('-name',false)">^</a>)</th>
  <th><a href="" ng-click="reverse=!reverse;order('zone', reverse)">Zone</a></th>
  <th><a href="" ng-click="reverse=!reverse;order('area',reverse)">Area</a></th>
</tr>

现在,对字母排序(和编号排序)的排序似乎很好。虽然我想点击“区域”时按字母顺序排序,但区域(这是一个数字)也将从最低到最高排序。我真的不知道从哪里开始创建这个二级排序顺序。

我确实注意到,如果我点击'区域',然后先排序,从最低到最高(点击两次):

名称(^)区域区域
迈克B 1 朱莉D 1 吉姆A 1 Adam C 1
皮特C 2
玛丽A 2
弗兰克B 2
约翰A 3

然后点击“区域”,从最低到最高,订单就是我想要的方式(点击两次):

名称(^)区域区域
吉姆A 1 玛丽A 2
约翰A 3 迈克B 1 弗兰克B 2
Adam C 1
皮特C 2
朱莉D 1

我希望这是有道理的。如果没有,请告诉我。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果你想在那时创建排序,那么你需要创建一个属性数组,就像在这个演示中一样

http://jsfiddle.net/ty7Tp/

  <th><a href="" ng-click="reverse=!reverse;order(['zone', 'area'],reverse)">Zone</a></th>