如何对筛选数据进行排序?

时间:2015-03-04 11:34:53

标签: angularjs

我有一个数据表,如果我从排序列表中选择“仅颜色”项,我可以过滤并仅显示“颜色”行。我这样做是通过使用以下代码:

<label>Sort By:</label>
<select ng-model="orderProp" class="form-control" tabindex="2">
  <option value="title">Title</option>
  <option value="filename">File Name</option>
  <option value="class">Classification</option>
  <option value="color">Color Only</option>
</select>

然后在table元素上使用ng-repeat:

<tr ng-repeat="item in filtered = (pptData | filter: query | orderBy: orderProp)" ng-if="orderProp !== 'color' || item.color">

但是,如何按标题显示这些颜色结果?我尝试了以下操作,但它不起作用:

<option value="{{ 'color' | orderBy:'title' }}">Color Only</option>

有人有什么想法吗?我的live demo is here

2 个答案:

答案 0 :(得分:1)

尝试类似

的内容
$scope.reverse = true; // false

<option value="{{ 'color' | orderBy:title:reverse }}">Color Only</option>

参考:https://docs.angularjs.org/api/ng/filter/orderBy

答案 1 :(得分:0)

我会做这样的事情,

<tr ng-repeat="item in filtered = (pptData | filter: query | orderBy: [orderProp,'title'])" ng-if="orderProp !== 'color' || item.color">

基本上你首先按orderProp排序,然后按标题排序。