繁体   English   中英

如何使用 mat-paginator 将基于卡片的自定义组件分页到父组件视图中?

[英]how can use mat-paginator for paging a custom card-based component into parent component view?

我构建了一个基于卡片的表格组件。 它有一个名为: @Input() tableModelRows:; Object[];的输入。 @Input() tableModelRows:; Object[]; 接收对象数组。 该数组的元素被视为表格的行,并且每个元素都被导入到基于卡片的组件中: <app-card-based-table-rows>使用 *ngFor 将它们显示在行中。 所以,由于大量的行(数组的元素),我想利用 mat-paginator 在几个页面中显示它们。 如何为此目的使用 mat-paginator? 实际上,如何分页<app-card-based-table-rows>组件(子组件)? card-based-table组件(父组件)的.ts和.HTML文件内容如下:

 import {Component, Input, OnInit} from '@angular/core'; @Component({ selector: 'app-card-based-table', templateUrl: './card-based-table.component.html', styleUrls: ['./card-based-table.component.css'] }) export class CardBasedTableComponent implements OnInit { @Input() tableHeaderTitles:; string[]: @Input() tableModelRows;. Object[]. //.:. constructor() {} ngOnInit(): void { } }
 <!-- insert table header selector--> <app-card-based-table-header [headerTitles]="tableHeaderTitles"> </app-card-based-table-header> <!-- insert table body selector--> <app-card-based-table-rows *ngFor="let row of tableModelRows" [rowTitles]="row"> </app-card-based-table-rows>

mat-paginator 可以“独立”使用。 您只需要带有 pageIndex(基于 0 的索引)、pageSize、length 和 pageSize 选项的“feed”。

<mat-paginator #paginator [length]="length"
              [pageIndex]="pageIndex"
              [pageSize]="pageSize"
              [pageSizeOptions]="[5, 10, 25, 100]"
              (page)="changePage($event)
              >
</mat-paginator>

length=100;
pageIndex=0;
pageSize=10;

请参阅模板引用变量#paginator 所以你可以直接在你的.html中使用切片pipe

<ng-content *ngFor="let item of myArray|slice:
             (paginator.pageIndex*paginator.pageSize):
             ((paginator.pageIndex+1)*paginator.pageSize)>
...
</ng-content>

如果您需要更多控制,您还可以添加事件(页面)来控制您的项目

<mat-paginator #paginator
               ...
              (page)="changePage($event)
              >
</mat-paginator>

changePage(event:PageEvent){
   console.log("you're in page index",event.pageIndex)
   ..make something more...
}

或者使用 ViewChild 获取分页器

@ViewChild(MatPaginator,{static:true}) paginator:MatPaginator

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM