Я придумал this plunker, чтобы показать свою проблему.Получение следующего и предыдущего набора записей из массива с использованием угловых & pagination
Поведение, которое я ищу, заключается в том, что когда пользователь нажимает на стрелку вправо, он переходит на следующую страницу, а стрелка влево - на предыдущую страницу. Если пользователь находится на стр. 10, то при нажатии стрелки вправо изменяется количество страниц, отображаемых на страницах разбиения на страницы с 2-11 и 11, подсвечивается.
Если они снова нажимают на стрелку вправо, это изменяет количество страниц, отображаемых на страницах разбиения на страницы с 3-12 и 12, подсвечивается. Это будет продолжаться до тех пор, пока страница 20 не будет достигнута, а затем не позволит им дальше. Следует также работать в предыдущем направлении также путем уменьшения, если пользователь на странице 1, нажав на стрелку влево, не действует. Надеюсь, это понятно.
HTML:
<ul class="pagination pagination-lg">
<li class="page-item">
<a href="#" ng-click="search($index-1)"> <span aria-hidden="true">«</span> <span class="sr-only">Previous</span> </a>
</li>
<li ng-class="currentPage === $index+1 ? 'active' : ''" ng-repeat="i in getNumber(numberOfPages) track by $index"><a class="page-link" href="#" ng-click="search($index+1)">{{$index+1}}</a></li>
<li class="page-item">
<a href="#" ng-click="search($index+1)"> <span aria-hidden="true">»</span> <span class="sr-only">Next</span> </a>
</li>
</ul>
Угловые/JS:
$scope.search = function(index){
$scope.currentPage = index;
$http.get('https://jsonplaceholder.typicode.com/todos').then(function (response) {
var temp = response.data;
$scope.data = temp.splice(pageSize * (index-1), 10);
})
}
См this plunker для полного кода. Любая помощь оценивается.