Angular pagination - обновлять данные onclick
Я пытаюсь реализовать разбиение на страницы на сайте angular / bootstrap. У меня есть данные, показывающие с правильным # строк на странице, у меня есть угловой подкачки, показывающие правильное количество страниц...но черт возьми, если я могу найти где-нибудь, что говорит мне, как использовать подкачку для обновления моих данных при нажатии страницы#...?! {{currentPage}} обновляется, но не уверен, как его вызвать getPresentations для обновления списка.
<div>
{{noOfPages}} {{currentPage}} {{maxSize}}
<pagination num-pages="noOfPages" current-page="currentPage"></pagination>
</div>
<script type="text/javascript">
angular.module('app', ['ui', 'shared', 'ui.bootstrap']).controller('AppCtl', function ($scope, $http, $window) {
var mvc = $window.MVC;
$scope.noOfPages = 0;
$scope.currentPage = 1;
$scope.maxSize = 5;
$scope.getPresentations = function () {
$http.get(mvc.base + "API/Presentations?page=" + $scope.currentPage + "&itemsPerPage=10")
.success(function (result) {
$scope.presentations = result.Items;
$scope.noOfPages = result.TotalPages;
$scope.currentPage = result.Page;
})
.error(function (result, status) {
$scope.newModal.errors = mvc.getApiErrors(status, result);
});
};
$scope.getPresentations();
});
</script>
2 ответов
у вас есть 2 варианта:
-
$watch
свойство текущей страницы - использовать
onSelectPage
обратный звонок
вот соответствующая страница с $watch
$scope.$watch('currentPage', function(newPage){
$scope.watchPage = newPage;
//or any other code here
});
и вот один, используя обратный вызов:
$scope.pageChanged = function(page) {
$scope.callbackPage = page;
$scope.watchPage = newPage;
};
как использовать:
<pagination on-select-page="pageChanged(page)" num-pages="noOfPages" current-page="currentPage"></pagination>
и, наконец, рабочий Планк, показывающий 2 подхода: http://plnkr.co/edit/UgOQo7?p=preview
@pkozlowski.opensource ответ Правильный, за исключением последних версий bootstrap изменились on-select-page to ng-change.