angular - 如何从 Material Angular 使用分页器?

标签 angular pagination angular-material

我是 Angular 的新手,正在尝试在我的应用中实现分页。我正在尝试使用 this material component.

使用下面的代码,我可以在我的 .ts 文件中获取 lengthpagesizepageSizeOptions

<md-paginator [length]="length"
              [pageSize]="pageSize"
              [pageSizeOptions]="pageSizeOptions"
</md-paginator>
export class PaginatorConfigurableExample {
  length = 100;
  pageSize = 10;
  pageSizeOptions = [5, 10, 25, 100];
}

但我似乎无法在页面更改时触发一个函数来更改上面表格中的数据。另外,如何使用 nextPagepreviousPagehasNextPagehasPreviousPage 方法?

最佳答案

我在这里遇到同样的问题。但我可以告诉你我做了一些研究。 基本上,您首先开始在 foo.template.ts 中添加页面 @Output 事件:

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

然后,您必须在 foo.component.ts 类和其他类中添加 pageEvent 属性来处理分页器要求:

pageEvent: PageEvent;
datasource: null;
pageIndex:number;
pageSize:number;
length:number;

并添加获取服务器数据的方法:

ngOnInit() {
   getServerData(null) ...
}

public getServerData(event?:PageEvent){
  this.fooService.getdata(event).subscribe(
    response =>{
      if(response.error) {
        // handle error
      } else {
        this.datasource = response.data;
        this.pageIndex = response.pageIndex;
        this.pageSize = response.pageSize;
        this.length = response.length;
      }
    },
    error =>{
      // handle error
    }
  );
  return event;
}

因此,基本上,每次单击分页器时,都会激活 getServerData(..) 方法,该方法会调用 foo.service.ts 获取所有需要的数据。在这种情况下,您不需要处理 nextPagenextXXX 事件,因为它们会在 View 呈现时自动计算。

希望对您有所帮助。如果你成功了,请告诉我。 =]

关于angular - 如何从 Material Angular 使用分页器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45318164/

相关文章:

javascript - 如何在 Angular 4 规范文件中模拟 nativeElement.focus()

angular - punycode 使用箭头函数编译并使其无法在 ie 11 中呈现

Angular 管道 - 当选择其他选项管道过滤器时重置复选框

python - 如何在模型级别分页数据(django)

mysql - 用mysql实现分页(限制和偏移)

Angular 6 with Material,点击事件无法正常工作

python - 如何在 Django 中对搜索结果进行分页?

javascript - 最小 Material 表演示 ID 列未渲染?

css - Angular Material -如何设置垫水平内容容器填充0

angular - 如何为 Angular Material 表提供固定高度