在使用limitTo再次过滤之前,请查看已过滤的ngRepeat数组的大小

时间:2016-02-22 09:35:51

标签: javascript arrays angularjs pagination

我目前正在通过自定义ngRepeat过滤器和startAtIndex过滤器的组合对我的limitTo进行分页。我想显示数据集中的结果总数,而不管页面如何。但是,当您使用limitTo时,这显然会在此时关闭数组,并且您无法获得所需的长度属性。

我的ngRepeat

ng-repeat-start="colleague in pagination.filteredData = (colleagueDataArray | filter:{name: queries.name} | filter:{client: queries.client} | filter:queries.generalQuery | orderBy:sortByField:reverseSort | startFrom: pagination.startAtIndex | limitTo:pagination.pageSize)">

我将过滤器的结果分配给pagination.filteredData对象,然后我可以使用{{pagination.filteredData.length}}在控制器的任何位置显示它的长度。

startAtIndexlimitBy过滤之前,我怎样才能获得过滤后的数组的长度?我可以以某种方式部分过滤colleagueDataArray数组,然后使用filteredArray再次过滤生成的ngRepeat吗?

如果这对您没有意义,请告诉我,以便我可以编辑问题。

1 个答案:

答案 0 :(得分:0)

编写自定义过滤器,无论您在那里尝试什么。

ng-repeat="data in bigData | filter:myfilter"

$scope.myfilter= function(data)
{
    // Check length or i dont know
    // $scope.bigData.length 

    if($scope.bigData.length > 2)
    {
        return true; // this will be listed in the results
    }

    return false; // otherwise it won't be within the results
};