我有一个表,我在其中使用大多数AngularJS教程中的doSort()示例来按列对数据进行排序。但是,由于我正在使用doSort()的orderBy,我无法弄清楚如何进行默认排序。
我尝试堆叠orderBy(就像你可以使用过滤器一样),但默认设置不起作用。
这是我的表,但orderBy:dueDate被忽略 -
<table id="tblProjects" class="tblLanding" ng-hide="projectManagerClose">
<tr class="landing_header_row">
<th style="width:7%;" data-ng-click="doProjSort('Priority')">Priority</th>
<th style="width:3%;" data-ng-click="doProjSort('Task_Id')">ID</th>
<th style="width:17%;" data-ng-click="doProjSort('Description')">Description</th>
<th style="width:10%;" data-ng-click="doProjSort('Status')">Status</th>
<th style="width:15%;" data-ng-click="doProjSort('Division')">Division</th>
<th style="width:12%;" data-ng-click="doProjSort('Requestor')">Requestor</th>
<th style="width:12%;" data-ng-click="doProjSort('ProjMan')">Project Manager</th>
<th style="width:12%;" data-ng-click="doProjSort('AssignedTo')">Assigned To</th>
<th style="width:12%;" data-ng-click="doProjSort('DueDate')">Due Date</th>
</tr>
<tr class="landing_data_row" data-ng-repeat="project in open_projects |
filter: pmProjectsFilter | filter: statusFilter |
orderBy: DueDate | orderBy:sortProjBy:reverse">
<td><div class='sprite indic-{{project.Priority}} centered'></div></td>
<td style="text-align:center;">{{project.Task_Id}}</td>
<td><a href="#">{{project.Description}}</a></td>
<td>{{project.Status}}</td>
<td>{{project.Division}}</td>
<td>{{project.Requestor}}</td>
<td>{{project.ProjMan}}</td>
<td>{{project.AssignedTo}}</td>
<td>{{project.DueDate | date : 'MMM dd, yyyy'}}</td>
</tr>
</table>
答案 0 :(得分:2)
'DueDate'
周围缺少单引号。这是必要的,因为它是一个文字字符串,而不是像sortProjBy
这样的变量。
<tr class="landing_data_row" data-ng-repeat="project in open_projects |
orderBy:'DueDate' | orderBy:sortProjBy:reverse">
这实际上是由DueDate最初对数据进行排序。然后,当某个值分配给sortProjBy
时,第二个orderBy
将覆盖第一个orderBy
。这是一个展示这种行为的掠夺者:http://plnkr.co/edit/GNN7m90e3PYfTmxoNdbn?p=preview
如果要在多个列上实现排序(始终按DueDate排序,然后按单击的列排序),请使用array syntax:
<tr class="landing_data_row" data-ng-repeat="project in open_projects |
orderBy:['DueDate',sortProjBy]">
以下是数组语法的演示:http://plnkr.co/edit/FQxPNmwVNMd4lmn9mPSZ?p=preview