2016-02-22 6 views
0

В настоящее время я разбиваю страницы на ngRepeat с помощью комбинации настраиваемого фильтра startAtIndex и фильтра limitTo. Я хочу показать общее количество результатов в наборе данных независимо от страницы. Однако, когда вы используете limitTo, это, очевидно, отсекает массив в этой точке, и вы не можете получить требуемое свойство длины.Просмотрите размер отфильтрованного массива ngRepeat перед повторной фильтрацией с 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}}.

Как это сделать, чтобы получить длину отфильтрованного массива до его фильтрации по startAtIndex и limitBy? Могу ли я частично фильтровать массив colleagueDataArray, а затем снова фильтровать полученный результат filteredArray с помощью ngRepeat?

Если это не имеет никакого отношения к вам, сообщите мне, чтобы я мог отредактировать вопрос.

ответ

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 
}; 
Смежные вопросы