我把这个组件命名为tm.pagination,原因是因为起名真的太难起了。而且我网名也叫天名, TM就这样了吧。github地址https://github.com/miaoyaoyao/AngularJs-UI

分页在线查看

点击预览

http://demo.miaoyueyue.com/js/ng/AngularJs-UI/demo/pagination.html

分页兼容性

对不起,我不会去测试老掉牙的ie8浏览器。目前测试了ie9,chrome,firefox,有任何问题,联系我。

基本使用方法

整个分页直接参考如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55

<!doctype html>
<html ng-app="myApp">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="../lib/bootstrap/3.2.0/css/bootstrap.min.css">
    <style>
        .page-list .pagination {float:left;}
        .page-list .pagination span {cursor: pointer;}
        .page-list .pagination .separate span{cursor: default; border-top:none;border-bottom:none;}
        .page-list .pagination .separate span:hover {background: none;}
        .page-list .page-total {float:left; margin: 25px 20px;}
        .page-list .page-total input, .page-list .page-total select{height: 26px; border: 1px solid #ddd;}
        .page-list .page-total input {width: 40px; padding-left:3px;}
        .page-list .page-total select {width: 50px;}
    </style>
</head>
<body ng-controller="testController">
<tm-pagination conf="paginationConf"></tm-pagination>
<script src="../lib/angularjs/1.2.22/angular.min.js"></script>
<script src="../src/pagination/tm.pagination.js"></script>
<script>
    angular.module('myApp', ['tm.pagination']).controller('testController', function($scope){
        /**
         * I'm not good at English, wish you you catch what I said And help me improve my English.
         *
         * A lightweight and useful pagination directive
         * conf is a object, it has attributes like below:
         *
         * currentPage: Current page number, default 1
         * totalItems: Total number of items in all pages
         * itemsPerPage:  number of items per page, default 15
         * onChange: when the pagination is change, it will excute the function.
         *
         * pagesLength: number for pagination size, default 9
         * perPageOptions: defind select how many items in a page, default [10, 15, 20, 30, 50]
         * rememberPerPage: use to remember how many items in a page select by user.
         *
         */
        $scope.paginationConf = {
            currentPage: 1,
            totalItems: 8000,
            itemsPerPage: 15,
            pagesLength: 15,
            perPageOptions: [10, 20, 30, 40, 50],
            rememberPerPage: 'perPageItems',
            onChange: function(){
            }
        };
    })
</script>
</body>
</html>

常用方法

对象中的属性也很简单

  • totalItems 总共有多少条记录(不用说了吧)
  • currentPage 当前所在的页(…默认第1页)
  • itemsPerPage 每页展示的数据条数(…默认15条)

几个特殊的重点说明一下:

  • pagesLength 分页条目的长度(如果设置建议设置为奇数)

下面分别是设置为9和15分别的效果

  • perPageOptions  可选择显示条数的数组

默认显示的时候是这样

你可以通过perPageOptions = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100];

把他变成这样的。(可能你也看到了一个问题,为什么我们的数据中没有15,而这里多出一个15,原因是我们itemsPerPage = 15;设置为15了,如果你改成20,就不会有些问题了,程序很智能的帮你解决判断了)

  • rememberPerPage 使用LocalStorage记住所选择的条目数的名称

这是我独家提供的功能,只此一家,别无分店,目前还没有看到有类似提供的。

这是说起来有点难理解,但其实很有用。

我说一个现实使用的例子来说,如果我们在768px的高度去做一个程序,可能看显示15条就占满整个屏幕了,你觉得这也很好,就设置为默认15条,但是如果有人用1080px的高度去看这个呢,可能底下会有大部空白。那他可能更希望每日展示20条数据。我们上面提供了一个每页展示多少条数据的,他自然可以选择每页展示20条。这很好,不是吗?但是,如果他下次再来访问这个,他是不是还要再选择一下显示20条呢?这样就不太方便,为何不为它记录了,他就是喜欢用20条来显示呢。所以这就是我提供这个的由来。

简单的来说rememberPerPage = ‘perPageItems’; 这个我会在本地存储中添加perPageItems变量,并存入相关值到本地存储中去。然后再拿出来。就实现了记录功能了。你喜欢15条,他喜欢20条,大家各爱各的,都很完美。

文章来源 http://www.miaoyueyue.com/archives/813.html

AngularJs创建自己的Grid–分页组件相关推荐

  1. 组件分页_如何创建分页组件

    组件分页 The theme for week #17 of the Weekly Coding Challenge is: 每周编码挑战第17周的主题是: 分页 (Pagination) A Pag ...

  2. AngularJS创建应用- HTML5 移动框架

    这些框架都有事先安装的Web组件,使用它们可以帮助你快速进行项目开发.这里列举5个这样的框架,帮助你使用AngularJS构建Web应用.更多的框架资源,可以参考 <分享10个最新的Web前端框 ...

  3. php grid 分页,jqGrid分页pager配置

    导航栏,也可以叫分页组件,html代码里面在 标签.注意是 ,不是 通过jqGrid的pager配置指向div的id,这样div就会成为jqGrid分页内容的容器. DEMO ... ... ... ...

  4. YII2中分页组件的使用

    当数据过多,无法一页显示时,我们经常会用到分页组件,YII2中已经帮我们封装好了分页组件. 首先我们创建操作数据表的AR模型: <?phpnamespace app\models;use yii ...

  5. ASP.Net分页组件1.0开发下载了...

    ASP.Net分页组件1.0开发下载了...支持皮肤和自定义样式.热乎乎的,写的不好的地方指正出来啊... 开源免费的.希望大家多多支持... ASP.Net分页组件1.0开发下载了...支持皮肤和自 ...

  6. Vue.js分页组件实现:diVuePagination

    为什么80%的码农都做不了架构师?>>>    完整版下载地址:https://gitee.com/dgx/diVuePagination 完整版演示地址:http://dgx.gi ...

  7. android实现箭头流程列表_反思|Android 列表分页组件Paging的设计与实现:系统概述...

    作者:却把清梅嗅 链接:https://github.com/qingmei2/blogs/issues/30 前言 本文将对Paging分页组件的设计和实现进行一个系统整体的概述,强烈建议 读者将本 ...

  8. ExtJs Grid分页时序号自增的实现,以及查询以后的序号的处理

    ExtJs Grid分页时,默认情况下每页的序号都是从1起始的,这往往不符合我们的习惯.这里实现了序号的自动增加. 如:每页20条第一页从1开始,第二页从21条开始. 先定义一个全局变量如record ...

  9. Python自定义分页组件

    为了防止XSS即跨站脚本攻击,需要加上 safe # 路由 from django.conf.urls import url from django.contrib import admin from ...

最新文章

  1. csu 1019 Simple Line Editor
  2. dubbo提供者主配置文件application.properties
  3. 解决Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), ple..
  4. JQuery快速入门-选择器
  5. Java Web学习笔记01:动态网站初体验
  6. 社工大师_社工,与弱势者同行 | TED演讲
  7. linux信号基本概念及如何产生信号
  8. java学习笔记14-多态
  9. 解决【Windows+Delphi+多线程+String】效率低的问题
  10. AI人工智能基础自学(一)
  11. 轻松学Java基础篇 小白必备!
  12. FastJson的JSON.isValid()出现BUG!
  13. 简单并查集-加边的无向图
  14. HTML和ftl的关系
  15. 零基础入门推荐系统 - 新闻推荐(一)
  16. 【湖上日出】从零开始通过拖拉拽可视化的方式制作动态风景,免手写CSS
  17. ReactiveX函数简要说明
  18. Java | 参数(Parameter)
  19. oracle 物化视图没效果,物化视图失效的几种情况及测试
  20. 河南新乡:牧野区王村镇手绘文明墙巩固文明果

热门文章

  1. Linux内核中max()宏的奥妙何在?(二)——大神Linus对这个宏怎么看?
  2. matlab智能算法30个案例分析_赞!继电保护25个事故案例分析总结,值得收藏!...
  3. network location awareness启动不了_【新手看过来】无钥匙启动功能
  4. ant引入html页面,antd引入普通html使用,将ant Design本地化
  5. android坐标判断三角形,Android实现三角形气泡效果方式汇总
  6. 皮一皮:这是什么鬼畜产品!
  7. 皮一皮:可怜的西瓜...
  8. 如何去除 IDEA 中 xml 文件的屎黄色背景
  9. 并发Bug之源有三,请睁大眼睛看清它们
  10. 轻松理解正向代理与反向代理