tab页:ng-zorro-antd使用后台分页,获取数据、渲染数据

后台分页

1、获取栏目名称
2、通过栏目名称获取数据
3、点击栏目切换数据
4、点击分页切换数据

html代码

<!--获取栏目名称 -->
<ul class="tabs d-flex">
          <li *ngFor="let item of columns;let i=index" (click)="activeColumnIndex=i; handleMouseoverTab(item)"
            [class.active]="activeColumnIndex===i">
            <a>{{item.name}}</a>
          </li>
</ul>
<!--获取对象栏目下的内容 -->
<div class="news-list p-3 pl-4">
        <ul class="news-list-ul">
          <li *ngFor="let content of contents; let i = index">
                <a target="_blank" [routerLink]="'/home-list/GroupNewscontent/content?.id'"
                  [queryParams]="{contentId:content?.id,index:i,columnId:columnId}"
                  (click)="addClicks(content?.id,i,columnId)">
                  {{content.title}}
                </a>
          </li>
       </ul>
</div>
<!--ng-zorro-antd分页 -->
<nz-pagination [nzPageIndex]="page" [nzTotal]="total" [nzPageSize]="MaxResultCount"
      (nzPageIndexChange)="nzPageIndexChange($event)"></nz-pagination>
<!--
* [nzPageIndex] 当前页数,可双向绑定
* [nzPageSize] 每页条数 ,可双向绑定
* (nzPageIndexChange) 页码改变的回调
-->

ts代码

//分页相关
//page:点击是处于第几页,pageIndex:分页索引,MaxResultCount:每页显示列表的数量
  page = 1
  pageIndex: number = 0;
  MaxResultCount: any = 4;
  // 跳转数量    skipCount=page*MaxResultCount 等于跳转页数*每页几条(这个是请求数据时要用的)
  SkipCount: any = 0;

ngOnInit() {
    this.activeColumnIndex = 0
    this.getColumn()
  }

获取tab页内容

//通过库名称获取tab页的内容
  getColumn() {
    this.api.getColName(XW).subscribe((res: any) => {
      this.columns = res
      //页面初始化默认默认选中的栏目
      this.colName = res[0]
      /*activecolumn是选中的栏目
       * 如果activecolumn没有值的话,加载完页面点分页是获取不到数据的
      */
      this.activecolumn = this.columns[this.activeColumnIndex]
      //界面初始化显示的默认栏目下的内容,为什么写这里?因为写ngOnInit里获取不到值,执行顺序的事,未找到解决办法   
      this.getData(this.colName)
      this.cd.detectChanges()
    })
  }

获取列表中的数据

//获取列表下的数据
  getData(column) {
    this.api.getDataByCode(column.code, this.page, this.MaxResultCount).subscribe((res: any) => {
    //total取的是res中的total,是全部数据
    this.total = res.total
      this.contents = res.data;
      this.cd.detectChanges()
    })
  }

点击切换列表数据

//鼠标经过的事件
  handleMouseoverTab(column) {
    //当前选中的tab
    this.activecolumn = column
    //当tab页切换时将分页初始化为第一页,nzPageIndexChange()已经有getData()所以无需再写一次getData()
    this.nzPageIndexChange(1)
    this.page = 1
    this.pageIndex = 1
  }

点击页码改变列表数据


//页码改变的回调
  nzPageIndexChange(size) {
    this.pageIndex = size - 1;    
    this.page = size;    
    // 这里必须减1
    this.SkipCount = (size - 1) * this.MaxResultCount;    
    this.getData(this.activecolumn)
  }

在这里插入图片描述
在这里插入图片描述

做出来的页面展示

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值