我正在实现表视图。在表视图中我实现了无限滚动。换句话说,我有2000个对象。我一次显示25个元素。当用户滚动到底部时,它会加载更多25个元素等等。我有" V"或标题上的" ^" 按钮。单击此图像我想按降序显示最后25个元素。滚动更多时加载更多数据等等。所以我添加了过滤器在那,但它没有工作..请你告诉我我们如何实现这一点..
我会给你举例:喜欢 A, B,D,C,K,N....T,Z
对象,当应用程序加载对象像这样加载时。当用户点击它时显示 Z,y,X,W,V,你... 或再次提升" A,B,C ...... Z"
这里是plunker
$scope.setSort = function(idx, reverse){
$scope.sortval = 'columns['+idx+'].value';
$scope.reverse = reverse;
};
HTML
<div class="col col-center brd gray-20" ng-repeat="d in invoice_column_name | filter:{checked: true}">
<sort-header label="{{d.label}}" index="{{d.index}}" sort-exp="setSort(idx, reverse)"></sort-header>
修改
Update
我将再次解释我有2000个对象..它是随机显示的。我一次只显示25个对象。当用户滚动更多数据时,它再次显示25个数据..但我想按升序排序数据首先,我需要对2000个对象进行排序,然后显示25个元素,如果用户想要加载更多,则滚动数据并加载它。在您的示例中,它仅排序前25个对象。然后加载另外25个元素然后排序5o元素..所以..所以这是不正确的解决方案 -
更新plunker
答案 0 :(得分:0)
如果您正在处理大量数据,那么最好先加载整个集合。我有几个原因:
答案 1 :(得分:0)
尝试使用此库https://github.com/sroze/ngInfiniteScroll 首先,您需要从服务器或任何您喜欢的方式加载数据,而不是在控制器中,您必须实现一个在用户向下滚动时调用的函数。您也可以在控制器中订购数据
$filter('orderBy')(data, orderProp, desc/asc)
请参阅angularjs过滤器顺序。当用户点击字母时,您必须订购数据并搜索以该字母开头的数组中的第一个元素。您接下来要做的就是在ngInfinitScroll指令回调函数中实现它。