在Angular.js

时间:2016-05-10 11:50:43

标签: angularjs sorting pagination dirpagination

我有一个问题。我无法使用Angular.js dir-paginate按字母顺序对表格数据进行排序。这里我需要对所有页面中的数据进行排序,但最近条件是当前页面的排序数据。我是在下面解释我的代码。

<tbody id="detailsstockid">
 <tr dir-paginate="cus in ($parent.labelResults=(listOfCustomerData  | filter:searchProduct.rest_name)) | itemsPerPage:5 | orderBy:'rest_name' track by $index" current-page="currentPage">
 <td>{{itemsPerPage *(currentPage-1)+$index+1}}</td>
<td>{{cus.rest_name}}</td>

 <td>{{cus.quadrant_name}}</td>
<td>{{cus.city}}</td>
 <td>{{cus.proviance}}</td>

<td>{{cus.person}}</td>
<td>{{cus.mobile}}</td>
<td>{{cus.url}}</td>
    <td ng-if="cus.status==1">Active</td>
 <td ng-if="cus.status==0">Inactive</td>
<td ng-if="cus.premium==1">Yes</td>
 <td ng-if="cus.premium==0">No</td>
<td >
<a ui-sref="dashboard.customer.view">
<input type='button' class='btn btn-xs btn-green' value='Edit' ng-click="editProductViewData(cus.member_id);">  
</a>
</td>
<td>
<a ui-sref="dashboard.customer.view">
<input type='button' class='btn btn-xs btn-red' value='Delete' ng-click="deleteProductInfoData(cus.member_id);" >  
</a>
</td>
</tr>   
</tbody>

在这种情况下,我只能对当前页面数据进行排序,但我需要对整个数组(i.e-listOfCustomerData)中的数据进行排序。我在下面附加我的输出。

enter image description here

在上面的图片中,餐馆名称从c开始,这是第1页图片。

enter image description here

对于第2页,餐馆名称从上面给出的b开始。我需要所有的餐厅按字母顺序排序,但不按页面排序。请帮助我。

2 个答案:

答案 0 :(得分:2)

链接过滤器的顺序非常重要。目前,您在排序前进行了分页:

 <tr dir-paginate="... | itemsPerPage:5 | orderBy:'rest_name' ...">

...因此,排序仅影响通过分页过滤器的未排序列表部分。

在这种情况下,您只需要交换该订单,然后在分页前进行排序。现在整个列表将首先排序,然后分成不同的页面。

... | orderBy:'rest_name' | itemsPerPage:5 ...

答案 1 :(得分:0)

是的,你可以!

对于排序,请尝试this,这将适用于所有listOfCustomerData

对于pagination,您可以使用此example代替您的版本。