How to get an dir-paginate filtered result reference

Shabin Muhammed picture Shabin Muhammed · Jan 29, 2015 · Viewed 11.2k times · Source

I am using angularjs v1.2.9 in my project. I use dir-pagination to display a list of items in my web app. A few filters are also used to sort the list dynamically. Is there any way for me to get the dynamically sorted list in my controller? I tried the solutions given here. But they dont seem to work with dir-pagination.

<tr dir-paginate="person in contacts|filter:searchText|filter:groups|orderBy:['name','email'] | itemsPerPage : 10"

Answer

rich green picture rich green · Apr 14, 2015

You could use a function to return filtered results when you need them.

function getFilteredResults() {
    return $scope.$eval("person in contacts|filter:searchText|filter:groups|orderBy:['name','email']");
}

And if you just want the filtered results, and not the paginated results you could.

<dir-paginate="person in filteredPersons = (contacts|filter:searchText|filter:groups|orderBy:['name','email']) | itemsPerPage : 10">

And if you need a page of the filtered results you could handle that in your controller like this.

function getFilteredPersonsOnPage() {
    var end;
    var start;
    var itemsPerPage = parseInt($scope.queryState.pageSize) || 999;
    start = ($scope.currentPage - 1) * itemsPerPage;
    end = start + itemsPerPage;
    return $scope.filteredPersons.slice(start, end);
}