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

你有两个选择:

  • $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>    

最后是显示这两种方法的工作 plunk: 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 回答