13

angular/bootstrap サイトにページネーションを実装しようとしています。ページごとの正しい行数を示すデータがあり、適切なページ数を示す角度のあるページングがあります...しかし、ページングを使用してデータを更新する方法を教えてくれる場所がどこにあるかを調べてみてください。ページ # がクリックされた...?! {{currentPage}} は更新中ですが、getPresentations を呼び出してリストを更新する方法がわかりません。

<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>
4

2 に答える 2

36

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

于 2013-02-25T21:33:49.363 に答える
6

@ pkozlowski.opensource の回答は正しいですが、最近のバージョンのブートストラップがon-select-pageに変更されてng-change になりました。

于 2015-02-10T20:18:57.053 に答える