<< 5 6 7 8 9 >>
以及如何突出显示我当前的分页页面?
这里是我如何迭代我的分页。
.pagination.clearfix
|
a.page ng-href="{{ ctrl.turnToPage(ctrl.current_page - 1) }}" ng-if="ctrl.search.meta.prev_page | valPresent" «
a.page ng-href="/clients?page={{$index + 1}}" ng-show="ctrl.urlChecker2" ng-repeat=" page in getNumber(number) track by $index"
| {{$index+1}}
a.page ng-href="{{ctrl.turnToPage($index + 1)}}" ng-show="ctrl.urlChecker" ng-repeat=" page in getNumber(number) track by $index"
strong
| {{$index+1}}
a.page href="{{ ctrl.turnToPage(ctrl.current_page + 1) }} " ng-if="ctrl.search.meta.next_page | valPresent" »
|
感谢快速回复的欢呼声。
答案 0 :(得分:1)
要突出显示当前页面,您可以使用ngClass。
像这样:ng-class={active: <condition for active page>}
请参阅下面的代码段中的完整示例。
要限制要显示的页面,有两种解决方案: 使用limitTo仅使用数组的切片。 像这样:
a.page ng-href="{{ctrl.turnToPage($index + 1)}}" ng-show="ctrl.urlChecker" ng-repeat=" page in getNumber(number):limitTo:5:startIndex() track by $index"
startIndex
将是一个返回数组第一个索引的函数(参见下文,在snipet中获取一个工作示例)。
为了避免在值中构建索引为+ 1的转储页数组,可以使用[] .constructor构建一个可直接在表达式中使用的空数组。 然后,使用$ index来确定页面。
使用 []。constructor 解决方案的用例的简单示例(html / es6):
const myApp = angular.module('myApp', []);
myApp.controller('PaginationController', () => {
const vm = this;
vm.pagesCount = 10
vm.pagesToDisplay = 5;
vm.currentPage = 1;
vm.next = () => {
return vm.currentPage = Math.min(vm.pagesCount, vm.currentPage + 1)
}
vm.prev = () => {
return Math.max(1, vm.currentPage - 1)
}
vm.startIndex = () => {
if( vm.currentPage > ((vm.pagesToDisplay / 2) + 1 )) {
if ((vm.currentPage + Math.floor(vm.pagesToDisplay / 2)) > vm.pagesCount) {
return vm.pagesCount - vm.pagesToDisplay + 1;
}
return vm.currentPage - Math.floor(vm.pagesToDisplay / 2);
}
return 1;
}
return vm;
});
.active {
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<body ng-app="myApp">
<div ng-controller="PaginationController as $ctrl">
<div>currentPage : {{$ctrl.currentPage}}/{{$ctrl.pagesCount}}</div>
<span ng-click="$ctrl.currentPage = $ctrl.prev()">prev</span>
<span ng-click="$ctrl.currentPage = $ctrl.startIndex() + $index" ng-class="{active: ($ctrl.startIndex() + $index) == $ctrl.currentPage}" ng-repeat="_page in [].constructor($ctrl.pagesToDisplay) track by $index">{{$ctrl.startIndex() + $index}}</span>
<span ng-click="$ctrl.currentPage = $ctrl.next()">next</span>
</div>
</body>
对于您的ng-href行为 将上面的代码改为:
<span ng-href="/clients?page={{$ctrl.prev()}}">prev</span>
<span ng-href="/clients?page={{$ctrl.startIndex() + $index}}" ng-class="{active: ($ctrl.startIndex() + $index) == $ctrl.currentPage}" ng-repeat="_page in [].constructor($ctrl.pagesToDisplay) track by $index">{{$ctrl.startIndex() + $index}}</span>
<span ng-href="/clients?page={{$ctrl.next()}}">next</span>