Javascript AngularJS:如何按acsending/decending顺序排序
我正在实现表视图。在表视图中,我正在实现无限滚动。换句话说,我有2000个对象。我一次显示25个元素。当用户滚动到底部时,它将加载更多的25个元素,以此类推。。我在标题上有“”V”或“^”按钮。单击此图像时,我只想按降序显示最后25个元素。当滚动更多时,加载更多数据,依此类推。因此我在其中添加了过滤器,但它不起作用。请告诉我如何实现此功能 我将给你举个例子:当应用程序加载对象像这样加载时,像Javascript AngularJS:如何按acsending/decending顺序排序,javascript,angularjs,angularjs-directive,angularjs-scope,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,Angularjs Ng Repeat,我正在实现表视图。在表视图中,我正在实现无限滚动。换句话说,我有2000个对象。我一次显示25个元素。当用户滚动到底部时,它将加载更多的25个元素,以此类推。。我在标题上有“”V”或“^”按钮。单击此图像时,我只想按降序显示最后25个元素。当滚动更多时,加载更多数据,依此类推。因此我在其中添加了过滤器,但它不起作用。请告诉我如何实现此功能 我将给你举个例子:当应用程序加载对象像这样加载时,像A,B,D,C,K,N…T,Z对象。当用户单击它时,显示Z,y,X,W,V,U…A或再次升序“A,B,C…
A,B,D,C,K,N…T,Z
对象。当用户单击它时,显示Z,y,X,W,V,U…A或再次升序“A,B,C…Z”
这是普朗克
$scope.setSort = function(idx, reverse){
$scope.sortval = 'columns['+idx+'].value';
$scope.reverse = reverse;
};
Html
我将再次解释我有2000个对象。它是随机显示的。我一次只显示25个对象。当用户滚动更多数据时,它会再次显示25个数据。但我想以升序和降序的方式对这些数据进行排序。首先我需要对2000个对象进行排序,然后从中显示25个元素,而不是如果用户希望加载更多数据,则滚动数据并加载。在您的示例中,它仅对前25个对象进行排序。然后加载另外25个元素,然后对5个元素进行排序。依此类推。因此,这不是正确的解决方案-更新plunker如果您正在处理一个大的数据集合,那么最好先加载整个集合。我有几个原因:
尝试使用此库 首先,您需要从服务器或任何您喜欢的地方加载数据,而不是在控制器中,您必须实现一个在用户向下滚动时调用的函数。您还可以在控制器中订购数据
$filter('orderBy')(data, orderProp, desc/asc)
请参见angularjs过滤器顺序。当用户单击字母时,您必须对数据进行排序,并在数组中搜索以该字母开头的第一个元素。接下来你要做的就是在ngInfinitScroll指令回调函数中实现这一点。你可以使用Plunker吗?我提到的问题在应用程序中无法解决,因此代码示例对你没有什么好处。您需要更改从中获取数据的端点,并让它进行排序。这取决于您的数据源,不管它是什么。如果您可以告诉it以什么顺序传递数据,并且数据在用户会话期间不可能更改,那么这就是您的答案。(具体的实现取决于您。)如果数据不能按其来源排序,那么您需要一次下载所有记录,以便能够使用AngularJS控制排序。
Update
$filter('orderBy')(data, orderProp, desc/asc)