加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

AngularJs分页插件

发布时间:2020-12-17 10:10:21 所属栏目:安全 来源:网络整理
导读:angularUI bootstrap提供的分页插件满足了大部分应用的需求。 地址http://angular-ui.github.io/bootstrap/#/pagination 在项目需求中,新增了两个需求: 1.自由设定每页显示的条目; 2.可以手动输入页面,跳转到指定的页数。 html代码 div class="paginatio

angularUI bootstrap提供的分页插件满足了大部分应用的需求。


地址http://angular-ui.github.io/bootstrap/#/pagination


在项目需求中,新增了两个需求:

1.自由设定每页显示的条目;

2.可以手动输入页面,跳转到指定的页数。


html代码

<div class="pagination-define p20 mt20" ng-hide="totalItems==0">
    <select ng-model="perPageSize" ng-change="pageChanged({currentPage:currentPage,perPageSize:perPageSize})" >
        <option value=10 ng-selected="perPageSize==10">10</option>
        <option value=20>20</option>
        <option value=30>30</option>
        <option value=50>50</option>
        <option value=100>100</option>
    </select>
    <uib-pagination  items-per-page="numPerPage" total-items="totalItems" ng-model="currentPage" ng-change="pageChanged({currentPage:currentPage,perPageSize:perPageSize})" max-size="5" class="pagination-sm" boundary-link-numbers="true" boundary-links="true" rotate="false" previous-text="?" next-text="?" first-text="?" last-text="?"></uib-pagination>
    <input type="text" ng-model="inputCurPage" min=1 cus-max-number ="{{maxPages}}" current-page="{{currentPage}}">
    <button class="btn btn-info btn-30h" ng-click="pageChanged({currentPage:inputCurPage,perPageSize:perPageSize})" ng-disabled="inputCurPage==''||submitting">Go</button>
</div>

css代码
.pagination-define{
    text-align: center
}
.pagination-define input,.pagination-define select {
    padding-left: 3px;
    height: 30px;
    vertical-align: top;
    border: 1px solid #ccc;
    border-radius: 4px;
    width: 50px;
}
.pagination {
    margin: 0;
}
.pagination-define .btn-30h {
    vertical-align: top;
}
.btn-30h {
    padding-top: 4px;
    padding-bottom: 4px;
}

Javascript代码
app.directive('cusMaxNumber',['$timeout',function ($timeout) {
        return {
            restrict: 'EA',require: 'ngModel',scope: {
                maxNumber: '@cusMaxNumber',currentPage: '@currentPage'
            },link: function (scope,element,attr,ctrl) {
                ctrl.$parsers.push(function (viewValue) {
                    var maxNumber = parseInt(scope.maxNumber,10);
                    var curNumber = scope.currentPage; //当前页数
                    var transformedInput = viewValue.replace(/[^0-9]/g,'');
                    if (transformedInput !== viewValue||parseInt(transformedInput,10)<1||parseInt(transformedInput,10)>maxNumber) {
                        ctrl.$setViewValue(curNumber);
                        ctrl.$render();
                        return curNumber;
                    }
                    return viewValue;
                });
            }
        };
    }])
.directive('cusPagination',[function(){
        return {
            restrict: "E",templateUrl: 'views/template/pagination.html',scope: {
                numPerPage: "=numPerPage",totalItems: "=totalItems",currentPage: "=cusCurrentPage",perPageSize:"=perPageSize",inputCurPage:"=inputCurPage",maxPages:"=maxPages",pageChanged: "&pageChanged"
            },replace: false
        };
    }]);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读