angularjs中的分页指令

自定义指令

import angular from 'angular';/*** @ngdoc module* @name components.page* @description 分页directive*/
export default angular.module('pageDirective', []).directive('ngPage', function () {return {restrict: 'E',scope: {totalCount: '=',pageSize: '=',param: '=',pageItmes: '=',currentPage: '=',goPage: '&',showMaxPage: '@',GO: '@'},controller: controller,template: templateFunction}function controller($scope, $element, $attrs) {var size = 0;$scope.$watch('pageSize', function (nvalue, ovalue) {size = parseInt(nvalue);if (typeof(ovalue) !== 'undefined') {$scope.currentPage = parseInt(($scope.currentPage - 1) * Number(ovalue) / size) + 1;}$scope.totalPage = getTotalPages();});//计算总页数var getTotalPages = function () {return Math.ceil($scope.totalCount / size);};//监控总记录条数是否发生变化,如改变,需要重新计算页数$scope.$watch('totalCount', function () {$scope.totalPage = getTotalPages();if ($scope.totalPage == undefined || isNaN($scope.totalPage)) {$scope.totalPage = 1}});//监控总页数,调整展示页码$scope.$watch('totalPage', function () {$scope.pages = getPages($scope.totalPage, $scope.currentPage);});//监控跳转的页数只能为数字$scope.$watch('GO', function () {var re = /[^\d]/g;if ($scope.GO !== '' && !re.test($scope.GO) && $scope.GO > 0) {$scope.pages = getPages($scope.totalPage, $scope.currentPage);} else {$scope.GO = '';}});//监控当前页,然后调整展示页码$scope.$watch('currentPage', function () {// debugger;$scope.pages = getPages($scope.totalPage, $scope.currentPage);});//跳转到某一页$scope.setCurrentPage = function (pageno) {if (pageno === '...' || pageno === 0 || pageno > $scope.totalPage || pageno === '') {return;}$scope.currentPage = pageno;$scope.param.page.currentPage = pageno;$scope.goPage($scope.param);$scope.GO = '';};//每页显示size改变$scope.changeSize = function () {$scope.param.page = {currentPage: 1,pageSize: $scope.pageSize};$scope.goPage($scope.param);};var getPages = function (totalPage, currentPage) {var pages = [];currentPage = parseInt(currentPage);totalPage = parseInt(totalPage);if (totalPage === 0) {pages.push(1);}//总页数<最大展示页数:展示全部else if (totalPage <= $attrs.showMaxPage) {for (var i = 1; i <= totalPage; i++) {pages.push(i);}}//当前页靠近首页前4页,显示:首页前4页,..., 尾页后2页else if (totalPage > $attrs.showMaxPage && currentPage <= 4) {pages.push(1);pages.push(2);pages.push(3);pages.push(4);pages.push("...");pages.push(totalPage - 1);pages.push(totalPage);}// 当前页靠近尾页后4页,显示else if (totalPage > $attrs.showMaxPage && (totalPage - currentPage) < 4) {pages.push(1);pages.push(2);pages.push("...");pages.push(totalPage - 3);pages.push(totalPage - 2);pages.push(totalPage - 1);pages.push(totalPage);}//当前页既不靠近首页前4页也不靠近尾页后4页,else {pages.push(1);pages.push(2);pages.push("...");pages.push(currentPage - 1);pages.push(currentPage);pages.push(currentPage + 1);pages.push("...");pages.push(totalPage);}return pages;};}function templateFunction() {return '<nav>' +'<ul class="pagination pagination-sm" style="font-size:15px;">' +'<li><a ng-click="setCurrentPage(currentPage-1)" style="font-size:13px;">&laquo;</a></li>' +'<li ng-class="{active: pageno == currentPage}" ng-repeat="pageno in pages" style="font-size:13px;">' +'<a ng-click="setCurrentPage(pageno)">{{pageno}}</a></li>' +'<li><a ng-click="setCurrentPage(currentPage-0+1)" style="font-size:13px;">&raquo;</a></li>' +'<li><span>每页' +'<select ng-model="pageSize" ng-change="changeSize()" style="width: 55px;" ng-options="item for item  in pageItmes">' +'</select></span>' +'</li>' +'<li><span><input type="text" style="width: 30px;" ng-model="GO"/></span></li>' +'<li><a ng-disabled="false" class="ng-binding" ng-click="setCurrentPage(GO)">GO</a></li>' +'</ul>' +'</nav>';}
}).name;

页面中调用

<page-directive total-count="param.page.totalCount" page-size="param.page.pageSize" param="param"page-itmes="param.selectCount" show-max-page="9" current-page="param.page.currentPage"go-page="queryList(param.page.currentPage)"></page-directive>

页面中获取数据的方法是queryList,go-page的时候把currentpage作为传递过去即可发送请求,取得想要的结果。

controller中需要传入初始化的数据

//初始化分页信息
$scope.param = {selectCount: [5, 10, 15],page: {currentPage: 1,pageSize: 5}
};

 

转载于:https://www.cnblogs.com/iagw/p/6863752.html

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

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

相关文章

金币问题c语言程序,【求助】急请c语言高手帮忙解决程序问题(问题已经被我自己解决,金币送给自己啦)...

不好意思&#xff0c;这是程序后面部分&#xff1a;RHOMOLL,double* X, double& DRHODT);void (__stdcall *FGCTYdll)(double& TK, double& RHOMOLL,double* X, double& FUGACITY);// The following ifdef block is…

xv6/调度算法及并发程序设计

1 在proc.c的scheduler函数中&#xff0c;有两行&#xff1a; if(setjmp(&cpus[cpu()].jmpbuf) 0) longjmp(&p->jmpbuf); 把它修改为&#xff1a; cprintf("setjmp called in scheduler\n"); if(setjmp(&cpus[cpu()].jmpbuf) 0){ cprintf(&qu…

c语言四舍五入取整向上取整,C 语言常用的函数(ceil-向上取整,floor-向下取整,round-四舍五入)...

释放双眼&#xff0c;带上耳机&#xff0c;听听看~&#xff01;1.ceil函数(向上取整)extern float ceilf(float); //参数为flot类型extern double ceil(double); //参数为double类型extern long double ceill(long double); //参数为long double类型举例&#xff1a;向上取整函…

PHP函数之HTMLSPECIALCHARS_DECODE

PHP函数之htmlspecialchars_decode htmlspecialchars_decode &#xff1a;将特殊的 HTML 实体转换回普通字符 htmlspecialchars&#xff1a; 将普通字符转换成实体转载于:https://www.cnblogs.com/lovebing/p/6866484.html

c语言中printk用法,printk和printf的区别

&&&大部分常用的C库函数在Linux内核中都已经得到了实现。在所有没有实现的函数中&#xff0c;最著名的就数printf()函数了。内核代码虽然无法调用printf()函数&#xff0c;但它可以调用printk()函数。printk()函数负责把格式化好的字符串拷贝到内核日志缓冲上&…

《Java技术》第八次作业

《Java技术》第八次作业 &#xff08;一&#xff09;学习总结 1.用思维导图对本周的学习内容进行总结。 2.通过实验内容中的具体实例说明在执行executeUpdate&#xff08;&#xff09;方法和executeQuery&#xff08;&#xff09;方法中使用动态参数时&#xff0c;为什么要使用…

android 短信 aapp,谈谈App的统一跳转和ARouter

App中每次页面跳转,都需要调用统一导航, 它用的非常频繁, 有必要对它进行一下梳理. 让他能用起来简单方便, 同时能支持各种常用的跳转业务场景.一. Android跳转遇到的问题1.intent-filter跳转不好管理Intent intent new Intent();intent.setAction(Intent.ACTION_SENDTO);inte…

android 自定义spnner弹出框,PopupWindow,ListView实现自定义Spinner

最终的效果图,点击86弹出popup这里写图片描述PupupWindow的布局文件为一个ListView 作为pupup的主体内容android:orientation"vertical"android:layout_width"match_parent"android:layout_height"match_parent">android:id"id/register…

hdu 6026 Deleting Edges(最短路计数)

题目链接&#xff1a;hdu 6026 Deleting Edges 题意&#xff1a; 给你n个点&#xff0c;和一个邻接矩阵&#xff0c;非0表示有边&#xff0c;0表示没边。 现在让你删一些边&#xff0c;构成一棵树&#xff0c;使得每个点到0这个点的距离为没删边之前的最短路。 问有多少棵这样的…

android 服务端 导入工程,如何导入与配置从网上下载的android源代码及服务器端源代码...

将Android项目导入import进Eclipse。 注意SDK版本是否匹配 。 服务器部署到Tomcat下。 你得在数据库中将这个点菜系统的数据库和表建好&#xff0c;或者导入。在服务器的代码中修改好你的数据库名和密码。首先看你的服务器配置的是什么环境 一般就2种 linux系统 window系统&…

mysql: 模糊查询 feild like keyword or feild like keyword , concat(feild1,feild2,feild3) like keyword...

mysql: 模糊查询 feild like %keyword% or feild like% keyword% , 或者 concat(feild1,feild2,feild3) like %keyword% 转载于:https://www.cnblogs.com/achengmu/p/6877852.html

android按钮控件常见问题,Android的基本控件和Activity的应用总结

Android的基本控件常用界面控件TextView 显示文本信息button 普通按钮EditText 可编辑的文本框组件(输入框)ImageView 用于显示图片ImageBUtton 图片按钮CheckBox 复选框RadioGroup 单选按钮组Spinner 下拉列表组件ProgressBar进度条SeekBar拖动条RatingBar评分组件ListView列表…

Xamarin XAML语言教程构建进度条ProgressBar

Xamarin XAML语言教程构建进度条ProgressBar Xamarin XAML语言教程构建进度条ProgressBar&#xff0c;ProgressBar被称为进度条&#xff0c;它类似于没有滑块的滑块控件。进度条总是水平放置的。本节将讲解如何使用进度条。注意&#xff1a;进度条在各个平台下基本相同&#xf…

android tv字体,best登陆「永久地址0365.tv」android默认字体android使用代码使用新的字体的常用代码...

页面类类名称&#xff1a;MainActivitypackage com.example.android_fonts_test;import android.support.v7.app.ActionBarActivity;import android.content.Context;import android.graphics.Typeface;import android.os.Bundle;import android.view.Menu;import android.view…

android 交叉编译so,Android交叉编译htop和使用方法

htop来源于top&#xff0c;top是Unix/linux下功能强大的性能检测工具之一&#xff0c;用于实时检测并统计进程的属性和状态&#xff0c;基于ncurses库&#xff0c;可上显示文字界面。但是top已经非常陈旧&#xff0c;不支持鼠标点击操作&#xff0c;不支持查看进程的各个子线程…

Java笔记(08):面向对象--抽象类

1、抽象类概述&#xff1a; 1 /*2 抽象类的概述&#xff1a;3 动物不应该定义为具体的东西&#xff0c;而且动物中的吃&#xff0c;睡等也不应该是具体的。4 我们把一个不是具体的功能称为抽象的功能&#xff0c;而一个类中如果有抽象的功能&#xff0c;该…

mac删除android sd卡,如何从mac完全删除android及其所有文件?

前一段时间我试图让科尔多瓦工作&#xff0c;但android模拟器永远不会启动。它只是挂着一个黑色的屏幕。如何从mac完全删除android及其所有文件&#xff1f;我原来是用brew install android-sdk安装的。然后我读了一个糟糕的地方。所以我已经删除它并安装了Android Studio。无论…

201521123023《Java程序设计》第13周学习总结

1. 本周学习总结 &#xff08;1&#xff09;网络中为了进行数据交换&#xff08;通信&#xff09;而建立的规则、标准或约定(语义语法规则)称之为协议&#xff08;常用http/ftp&#xff09; &#xff08;2&#xff09;大致熟悉了TCP协议&#xff0c;但是UDP怎么辣么蓝&#xff…

Android中怎获取json,Android应用中如何解析获取的json数据

Android应用中如何解析获取的json数据发布时间&#xff1a;2020-11-24 17:10:08来源&#xff1a;亿速云阅读&#xff1a;107作者&#xff1a;Leah这篇文章将为大家详细讲解有关Android应用中如何解析获取的json数据&#xff0c;文章内容质量较高&#xff0c;因此小编分享给大家…

Hibernate4之session核心方法

在学习session的核心方法之前&#xff0c;我们先了解下hibernate中几种对象的状态&#xff1a; 暂时状态&#xff1a;这样的状态就好像咱们公司请的暂时员工一样&#xff0c;他在公司里没有相关的资料和id。 特点&#xff1a;在使用代理主键的情况下, OID 通常为 null 不…