12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- var myApp = angular.module('myApp');
- myApp.directive('pagination', function () {
- return {
- restrict: 'E',
- scope: {
- numPages: '=',
- currentPage: '=',
- onSelectPage: '&'
- },
- templateUrl: 'pagination.html',
- replace: true,
- link: function (scope, location) {
- scope.$watch('numPages', function (value) {
- scope.pages = [];
- for (var i = 1; i <= value; i++) {
- scope.pages.push(i);
- }
- if (scope.currentPage > value) {
- scope.selectPage(value);
- }
- });
- scope.noPrevious = function () {
- return scope.currentPage === 1;
- };
- scope.noNext = function () {
- return scope.currentPage === scope.numPages;
- };
- scope.isActive = function (page) {
- return scope.currentPage === page;
- };
- scope.selectPage = function (page) {
- if (!scope.isActive(page)) {
- scope.currentPage = page;
- // scope.onSelectPage({
- // page: page
- // });
- location.hash = "#/apps?page=" + page;
- }
- };
- scope.selectPrevious = function () {
- if (!scope.noPrevious()) {
- scope.selectPage(scope.currentPage - 1);
- }
- };
- scope.selectNext = function () {
- if (!scope.noNext()) {
- scope.selectPage(scope.currentPage + 1);
- }
- };
- }
- };
- });
|