基于Angularjs实现分页

前言

       学习任何一门语言前肯定是有业务需求来驱动你去学习它,当然ng也不例外,在学习ng前我第一个想做的demo就是基于ng实现分页,除去基本的计算思路外就是使用指令封装成一个插件,在需要分页的列表页面内直接引用。

 

插件

      在封装分页插件时我实现了几种方式总体都比较零散,最后找到了一个朋友(http://www.miaoyueyue.com/archives/813.html)封装的插件,觉还不错,读了下他的源码就直接在项目中使用了。

 

原理和使用说明

      1、插件源码主要基于angular directive来实现。

      2、调用时关键地方是后台请求处理函数,也就是从后台取数据。

      3、插件有两个关键参数currentPage、itemsPerPage,当前页码和每页的记录数。

      4、实现方法调用后我们需要根据每次点击分页插件页码时重新提交后台来获取相应页码数据。 在调用的页码中我使用了$watch来监控。  我初次使用时是把调用函数放在了插件的onchange中,结果发现每次都会触发两次后台。这个地方需要注意。

      5、我把请求后台封装成了Service层,然后在Controller里调用,也符合MVC思想。

 

效果图

 

调用代码

<div ng-app="DemoApp" ng-controller="DemoController"><table class="table table-striped"><thead><tr><td>ID</td><td>FirstName</td><td>LastName</td><td>Status</td><td>Address</td></tr></thead><tbody><tr ng-repeat="emp in persons"><td>{{emp.ID}}</td><td>{{emp.FirstName}}</td><td>{{emp.LastName}}</td><td>{{emp.Status}}</td><td>{{emp.Address}}</td></tr></tbody></table><tm-pagination conf="paginationConf"></tm-pagination>
</div>
<script type="text/javascript">var app = angular.module('DemoApp', ['tm.pagination']);app.controller('DemoController', ['$scope', 'BusinessService', function ($scope, BusinessService) {var GetAllEmployee = function () {var postData = {pageIndex: $scope.paginationConf.currentPage,pageSize: $scope.paginationConf.itemsPerPage}BusinessService.list(postData).success(function (response) {$scope.paginationConf.totalItems = response.count;$scope.persons = response.items;});}//配置分页基本参数$scope.paginationConf = {currentPage: 1,itemsPerPage: 5};/***************************************************************当页码和页面记录数发生变化时监控后台查询如果把currentPage和itemsPerPage分开监控的话则会触发两次后台事件。 ***************************************************************/$scope.$watch('paginationConf.currentPage + paginationConf.itemsPerPage', GetAllEmployee);}]);//业务类app.factory('BusinessService', ['$http', function ($http) {var list = function (postData) {return $http.post('/Employee/GetAllEmployee', postData);}return {list: function (postData) {return list(postData);}}}]);
</script>

 

插件和Demo下载

http://yunpan.cn/cQEhnLrpnkniQ  访问密码 be74

转载于:https://www.cnblogs.com/sword-successful/p/4605222.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273165.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mbot机器人初体验_[首发开箱]Makeblock mBot Ranger mBot游侠版 强大的STEM教育机器人...

本帖最后由 ahagowo 于 2016-4-17 08:38 编辑mBot游侠机器人套件是一个三种功能于一身的STEM教育机器人套件&#xff0c;它支持3种组装形态&#xff1a;机器人坦克&#xff0c;三轮赛车&#xff0c;和自平衡车。mBot游侠可通过 iPad&#xff0c;平板计算机或笔记本计算机来编程…

mysql数据库设计规范_MYSQL数据库设计规范与原则

MYSQL数据库设计规范1、数据库命名规范采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线_组成;命名简洁明确(长度不能超过30个字符);例如&#xff1a;user, stat, log, 也可以wifi_user, wifi_stat, wifi_log给数据库加个前缀;除非是备份数据库可以加0-9的自然…

jar乱放问题

之前看到一个项目不能继承类SimpleTagSuppert类&#xff0c;而将jsp-api.jar&#xff08;不知道servlet-api.jar能不能放&#xff09;放入到了 jdk/jre/lib/ext包下面结果不仅正在写的jsp不能运行&#xff0c;以前的web应用也不能运行&#xff0c;会出现 java.lang.ClassNotFo…

python课程笔记_Python课程笔记(一)

由于新冠状病毒的爆发&#xff0c;不得不在家里上网课&#xff0c;开课已经两个礼拜了&#xff0c;今天上完Python课后&#xff0c;准备整理一下最近学习Python的笔记。人生苦短&#xff0c;我用Python一、Hello World初学一门新的语言&#xff0c;就一定要从Hello World开始pr…

Bootstrap系列 -- 41. 带表单的导航条

有的导航条中会带有搜索表单,在Bootstrap框架中提供了一个“navbar-form”&#xff0c;使用方法很简单&#xff0c;在navbar容器中放置一个带有navbar-form类名的表单。navbar-left”让表单左浮动&#xff0c;更好实现对齐。在Bootstrap框架中&#xff0c;还提供了“navbar-rig…

mysql log table_mysqlbinlog功能扩展--table参数

目的mysqlbinlog在分析mysql的binlog日志时&#xff0c;有时需要针对某个表的操作进行分析。但是这个表属于“冷数据”&#xff0c;操作记录相对较少&#xff0c;而其他表操作往往很频繁&#xff0c;binlog日志量特别大。尤其是当binlog的模式设置为ROW时&#xff0c;情况就更加…

python递归迭代_Python入门基础知识点(python迭代器和递归)

函数名的使用&#xff1a;函数名是一个变量, 但它是一个特殊的变量, 与括号配合可以执行函数的变量函数名的内存地址&#xff1a;deffunc():passprint(func) #函数的内存地址结果&#xff1a;函数名可以赋值给其他变量&#xff1a;deffunc():print(1)afunca()func()#函数名可以…

怎么调处vs2010的MSDN帮助文档

如果装的是vs2010专业版的话 直接按F1直接可调出在线的帮助 直接按F2可以调出本机版的 转载于:https://www.cnblogs.com/fag888/p/5789159.html

redis的lrange_thinkphp5操作redis系列教程】列表类型之lRange,lGetRange

namespace app\admin\controller;use think\cache\driver\Redis;use think\Controller;use \think\Db;class Index extends Controller{//获取redispublic function getRedis(){$redis new \Redis();$redis->connect(127.0.0.1,6379);$redis->auth(root); //redis密码ec…

如何写好博客

好的博客是用来解决问题的&#xff0c;每一篇文章都应该以如何解决问题为驱动力&#xff0c;而不是知识点的累加&#xff0c;比如说之前写的[MVC]系列&#xff0c;均为知识点的堆积&#xff0c;没有例子和代码&#xff0c;也没有说明问题&#xff0c;这样的文章&#xff0c;基本…

云服务器建站原理_云服务器cvm与建站主机之间的区别

(文章来源&#xff1a;西部数码)云服务器cvm与建站主机区别是什么&#xff1f;cvm的英文全拼是CloudVirtualMachine(云虚拟机)&#xff0c;所以云服务器cvm是指虚拟云服务器&#xff0c;属于云服务器产品中的一种。而建站主机一般多是指虚拟主机&#xff0c;是在服务器中划分出…

Magento--判断checkout中是否使用了coupon code

在checkout页面中&#xff0c;如果想判断顾客是否有使用coupon code&#xff0c;可以通过checkout session来进行判断。以下代码会返回checkout中使用的coupon code或者返回空&#xff08;当没有使用coupon code时&#xff09; 1 <?php 2 3 $coupon_code Mage::getSingl…

启动python内核时发生错误_启动内核时出错

我一直看到这个消息。在An error ocurred while starting the kernelTraceback (most recent call last):File "C:\Users\Excel\Anaconda3\lib\runpy.py", line 193, in _run_module_as_main"__main__", mod_spec)File "C:\Users\Excel\Anaconda3\lib…

Scala笔记

1、伴生对象 形如&#xff1a; 有一个类 class Test{ } 一个object和该类同名 object Test{ } object Test的作用类似于静态类&#xff08;工具类&#xff09;&#xff0c;其中的所有成员都是静态的&#xff0c;在object Test中可以直接访问class Test的成员&#xff1b;…

maven找到mysql 连接池_在Tomcat6.0+MySQL5.0环境下配置和使用数据库连接池

一&#xff0c;在Tomcat中配置连接池的JNDI首先到MySQL的网站上下载MySQL JDBC连接器放到%CATALINA_HOME%/lib目录下&#xff0c;在%CATALINA_HOME%/conf目录下找到context.xml&#xff0c;这个文件是全局的&#xff0c;如果想只对特定的应用使用可以编辑WEB-INF/context.xml文…

mysql将多个成绩放在一排_mysql巧用连表查询各科成绩前三名

下列是各表的详情&#xff0c;不想自己建表的同学可以直接copy code&#xff0c;数据随意。创建表成绩详情表&#xff1a;CREATE TABLE score (id int(10) NOT NULL AUTO_INCREMENT,subject_id int(10) DEFAULT NULL,student_id int(10) DEFAULT NULL,score float DEFAULT NULL…

Oracle 跨库 查询 复制表数据 分布式查询

方法一&#xff1a; 在眼下绝大部分数据库有分布式查询的须要。以下简单的介绍怎样在oracle中配置实现跨库訪问。比方如今有2个数据库服务器&#xff0c;安装了2个数据库。数据库server A和B。如今来实如今A库中訪问B的数据库。 第一步、配置Aserver端的tnsnames.ora文件&#…

java 匹配mysql按钮_使用Java在mysql查询中设置匹配函数

我有以下在java中查询(mysql)的摘录&#xff1a;queryGeral.append("FROM product p, fabricante_product fp, fabricante f, extensao e, product_autor pa ").append(" WHERE ").append("a.nome like ? AND ").append("p.cod_material …

LeetCode Contains Duplicate (判断重复元素)

题意&#xff1a; 如果所给序列的元素不是唯一的&#xff0c;则返回true&#xff0c;否则false。 思路&#xff1a; 哈希map解决。 1 class Solution {2 public:3 bool containsDuplicate(vector<int>& nums) {4 unordered_map<int,int> mapp;5 …

提高团队代码质量

近期看到一篇博客。大致的意思就是网管将原本混乱不堪的交换机整理整齐了&#xff0c;起初交换机是图2那样的&#xff0c;由于越来用的人越多&#xff0c;操作的人越来越多。终于成为了图1那个样子。这不禁让我想到了项目中的代码。原先在刚上线的时候谈不上是完美的&#xff0…