diff --git a/src/pagination/pagination.js b/src/pagination/pagination.js index e8ef4eeec1..321b09e599 100644 --- a/src/pagination/pagination.js +++ b/src/pagination/pagination.js @@ -46,6 +46,10 @@ angular.module('ui.bootstrap.pagination', []) } }; + $scope.$watch('page', function() { + self.render(); + }); + $scope.$watch('totalItems', function() { $scope.totalPages = self.calculateTotalPages(); }); @@ -59,10 +63,6 @@ angular.module('ui.bootstrap.pagination', []) self.render(); } }); - - $scope.$watch('page', function() { - self.render(); - }); }]) .constant('paginationConfig', { diff --git a/src/pagination/test/pagination.spec.js b/src/pagination/test/pagination.spec.js index 6abea98fd5..71c145ff58 100644 --- a/src/pagination/test/pagination.spec.js +++ b/src/pagination/test/pagination.spec.js @@ -95,6 +95,14 @@ describe('pagination directive', function () { expect(getPaginationEl(-1).text()).toBe('Next'); }); + it('does not change the current page when `total-items` changes but is valid', function() { + $rootScope.currentPage = 1; + $rootScope.total = 18; // 2 pages + $rootScope.$digest(); + + expect($rootScope.currentPage).toBe(1); + }); + describe('`items-per-page`', function () { beforeEach(inject(function() { $rootScope.perpage = 5;