博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
angular分页组件
阅读量:5945 次
发布时间:2019-06-19

本文共 3241 字,大约阅读时间需要 10 分钟。

组件模版为fenye.html

  • 共{
    {_total}}条
  • {
    {item}}
  • 前往

组件逻辑处理 fenye.ts

import { Component,Input,Output,OnInit,EventEmitter } from '@angular/core';@Component({    selector:'fenye',    templateUrl:'./fenye.html'})export class fenye implements OnInit{    @Input() page;  //当前页数    @Input() size;      //每页条数    @Output() callback = new EventEmitter
(); //改变当前页事件 _total = 0; pageCount = 0; //总页数 isFirst = true; //是否第一页 isLast = true; //是否最后一页 nums = []; //页序号 numsCount = 5; //允许展示的序号长度 sizeOptionItem = 0; //每条条数项目 //初始化 ngOnInit(){ this.setSizeOption() this.setPageCount() this.setNums() } //总条数 @Input() public set total(val){ this._total = val; this.setPageCount(); this.setNums() } //设置每页显示条数的组合 setSizeOption(){ if(!this.size || Number.isNaN(parseInt(this.size))){ this.size = 10; } if([10,20,30,40,50,100].indexOf(this.size)==-1){ this.sizeOptionItem = this.size; } } //设置总页数 setPageCount(){ let num = Math.ceil( this._total / this.size ); this.pageCount = Number.isFinite(num) && !Number.isNaN(num) ? num : 0; } //设置页序号 setNums(){ this.nums = []; this.isFirst = false; this.isLast = false; if(this.pageCount==0){ return; } if(this.pageCount
1 ? begin : 1; let len = begin + this.numsCount; let end = this.page + half; if(end>=this.pageCount){ begin = this.pageCount-this.numsCount+1; len = this.pageCount+1; } for(let i=begin;i
this.pageCount){ this.setPage(this.pageCount) }else{ this.setPage(this.page) } this.setNums(); } //上一页 prev(){ if(this.pageCount<=this.numsCount || this.isFirst){ return; } this.isLast=false; let end = this.nums.shift(); let begin = end-this.numsCount+1; if(begin<=1){ this.isFirst = true; begin = 1; end = this.numsCount; } this.nums = []; for(let i=begin;i<=end;i++){ this.nums.push(i); } } //下一页 next(){ if(this.pageCount<=this.numsCount || this.isLast){ return; } this.isFirst = false; let begin = this.nums.pop(); let end = begin+this.numsCount; if(end>this.pageCount){ this.isLast = true; begin = this.pageCount-this.numsCount+1; end = this.pageCount+1; } this.nums = []; for(let i=begin;i
this.pageCount ? this.pageCount : page; this.setPage(page); this.setNums(); } }

使用方法

转载于:https://my.oschina.net/tongjh/blog/1548155

你可能感兴趣的文章
Kubernetes 1.2.0 发布,Docker集群管理驶入快车道
查看>>
在CentOS下,利用FFMPEG对视频进行转码
查看>>
SublimeText3系列(3)- HTML-CSS-JS Prettify美化代码&Markdown Preview写作
查看>>
理解 Redux
查看>>
填一填用了半个月 ionic 遇到的坑
查看>>
[译] 用 Haskell 写简单的 Monadic Parser
查看>>
bling_hash——Node.js 字符串哈希的包
查看>>
谷歌 .dev 顶级域名正式开放
查看>>
Android Q 将获得大量的隐私保护功能
查看>>
Android Volley库源码简析(Image Request部分)
查看>>
Firefox 密码管理器 Lockbox 推出 Android 版
查看>>
视频点播-资源用量
查看>>
好程序员分享大势所趋 HTML5成Web开发者最关心的技术 ...
查看>>
北汽集团荣辉:抓不住自动驾驶 就抓不住车企的命脉 | 自动驾驶这十年 ...
查看>>
豆瓣评分8.8,这本程序员案头必备宝典,10年沉淀,新版再现 ...
查看>>
运行 Spring Boot 应用的 3 种方式!
查看>>
【内容安全】虚拟化及云环境下数据库审计优缺点分析
查看>>
crmeb电商系统
查看>>
xttprep.tmpl
查看>>
mycat垂直分库
查看>>