我的 ionicionic2实战前端学习之路

ionic2实战-自定义分页组件

2017-03-01  本文已影响5475人  昵称已被使用_

前言

效果演示

ionic2实战-自定义分页组件.gif

核心代码

<ion-grid text-center *ngIf="total>pageSize">
  <ion-row>
    <ion-col no-padding>
      <button ion-button  small [color]="color" [disabled]="pageNum==1" (click)="btnClick(1)">首页</button>
      <button ion-button  small [color]="color" [disabled]="pageNum==1" (click)="btnClick(pageNum-1)">上一页
      </button>
      <button ion-button  small [color]="color" [disabled]="pageNum==ceil(total/pageSize)"
              (click)="btnClick(pageNum+1)">下一页
      </button>
      <button ion-button  small [color]="color" [disabled]="pageNum==ceil(total/pageSize)"
              (click)="btnClick(ceil(total/pageSize))">尾页
      </button>
    </ion-col>
  </ion-row>
  <ion-row>
    <ion-col no-padding style="font-size: 12px">
      每页显示{{pageSize}}条数据,共{{total}}条,当前为第{{pageNum}}页,共{{ceil(total/pageSize)}}页
    </ion-col>
  </ion-row>
</ion-grid>

import {Component, Input, Output, EventEmitter} from '@angular/core';
import { IonicPage} from 'ionic-angular';
import {PAGE_SIZE} from "../../providers/Constants";

/**
 * @name 自定义分页组件
 * @description
 * @example <page-paging [total]="18" (pageNumChange)="doSearch($event)"></page-paging>
 * @example <page-paging [total]="total" (pageNumChange)="doSearch($event)" pageSize="10" color="dark"></page-paging>
 */
@IonicPage()
@Component({
  selector: 'page-paging',
  templateUrl: 'paging.html',
})
export class PagingPage {

  @Input()
  total:number;//共多少条数据

  @Input()
  pageSize:number=PAGE_SIZE;//每页大小,默认5条

  @Input()
  color:string='primary';//主题颜色

  @Input() pageNum:number=1;//当前第几页,默认1
  @Output() pageNumChange = new EventEmitter<any>();


  constructor() {
  }

  btnClick(pageNum){
    this.pageNum = pageNum;
    this.pageNumChange.emit(pageNum);
  }

  ceil(num){
    return Math.ceil(num);
  }

}

import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { PagingPage } from './paging';

@NgModule({
  declarations: [
    PagingPage,
  ],
  imports: [
    IonicPageModule.forChild(PagingPage),
  ],
  exports: [
    PagingPage
  ]
})
export class PagingPageModule {}

使用

<page-paging [total]="18" (pageNumChange)="doSearch($event)"></page-paging>
 doSearch(pageNumber){
    console.log(pageNumber);
  }

最后

上一篇 下一篇

猜你喜欢

热点阅读