我在我的项目中使用angularjs v1.2.9。我使用dir-pagination在我的网络应用程序中显示项目列表。一些过滤器也用于动态地对列表进行排序。有没有办法让我在控制器中获取动态排序列表?我尝试了here给出的解决方案。但他们似乎并没有使用dir-pagination。
<tr dir-paginate="person in contacts|filter:searchText|filter:groups|orderBy:['name','email'] | itemsPerPage : 10"
答案 0 :(得分:9)
您可以使用函数在需要时返回过滤后的结果。
function getFilteredResults() {
return $scope.$eval("person in contacts|filter:searchText|filter:groups|orderBy:['name','email']");
}
如果您只想要过滤结果,而不是想要的分页结果。
<dir-paginate="person in filteredPersons = (contacts|filter:searchText|filter:groups|orderBy:['name','email']) | itemsPerPage : 10">
如果您需要一个已过滤结果的页面,您可以像这样在控制器中处理它。
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);
}