在使用ng-repeat应用另一个过滤器之前保留过滤列表

时间:2015-07-01 14:34:21

标签: arrays angularjs pagination angularjs-ng-repeat ng-repeat

我有一个名为ListA的列表。我正在对它执行一些过滤器并保存在一个名为filteredList的新数组中。

<div ng-repeat="element in filteredList =(ListA| filter: {label:searchCategory.value} |filter:searchString)">

现在,我想使用filteredList来实现分页。我已经使用splice(start, end)为其他页面实现了分页,我在其中更新startend值以更新可见数组。 将splice添加到过滤器会改变我的filteredList大小,这是我需要的,以便计算分页的页数。

我需要进入ng-repeat会是这样的

ng-repeat="element in newList.splice(start, end)" where `newList` without splice is essentially `filteredList`.

1 个答案:

答案 0 :(得分:1)

在这种情况下,您需要的是在Javascript本身中过滤List。

适用于您的场景

在您的控制器中:

var ListA = [<some-data>];

$scope.filteredList = $filter('filter')(ListA, searchString );
$scope.filteredList = $filter('filter')($scope.filteredList, {label:searchCategory.value} );

您应该在点击某个事件时使用Filter值,并在处理程序上重新计算此filteredList。

如果项目小于200,那么您可以通过在过滤器表达式上实现观察器来实现实时过滤。