2013-02-25 11 views
13

Próbuję zaimplementować paginację na stronie kątowej/bootstrap. Mam dane wyświetlane z prawidłowym # wierszy na stronie, mam stronicowanie kątowe wykazujące odpowiednią liczbę stron ... ale do cholery, jeśli mogę znaleźć nigdzie, że mówi mi, JAK korzystać z stronicowania do odświeżania moich danych, gdy strona # jest kliknięta ...?! {{currentPage}} aktualizuje się, ale nie wiem, jak to zrobić, aby wywołać getPresentations, aby zaktualizować listę.Angular pagination - update data onclick

<div> 
     {{noOfPages}} &nbsp; {{currentPage}} &nbsp; {{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> 

Odpowiedz

36

Masz 2 opcje:

  • $watch obecny stron nieruchomość
  • używają onSelectPage zwrotnego

Oto odpowiednią stronę z $watch

$scope.$watch('currentPage', function(newPage){ 
    $scope.watchPage = newPage; 
    //or any other code here 
    }); 

A tu jeden pomocą callback:

$scope.pageChanged = function(page) { 
    $scope.callbackPage = page; 
    $scope.watchPage = newPage; 
    }; 

używane jak:

<pagination on-select-page="pageChanged(page)" num-pages="noOfPages" current-page="currentPage"></pagination>  

I wreszcie roboczego rzucać pokazujący 2 podejścia: http://plnkr.co/edit/UgOQo7?p=preview

+4

Dzięki! Wiedziałem, że to nie będzie dużo ... irytuje mnie, że nie włączają tej części do dokumentu. – NikZ

+1

Dzięki za odpowiedź! W przykładzie "pageChanged" jaki jest cel $ scope.watchPage = newPage? – standingwave

+1

Szaleję, ponieważ wypróbowałem obie te metody przed przybyciem tutaj i żadne z nich nie działa :( – Dustin

5

@ pkozlowski.opensource odpowiedź jest poprawna , z wyjątkiem najnowszych wersji programu ładującego zmieniono na stronie wyboru na na ng-change.