我是angular的新手,正在try 在我的应用程序中实现分页.我试着用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中开始添加page@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;
}

所以,基本上,每次单击paginator,都会激活getServerData(…)方法调用foo.service.ts获取所需的所有数据.在这种情况下,不需要处理nextPagenextXXX事件,因为它们将在视图渲染时自动计算.

我希望这能帮助你.如果你成功了,请告诉我.=]

Angular相关问答推荐

Angular ngModel双向数据绑定不适用于表单中的Select元素

Angular 和PrimeNg文件Uploader:渲染元件时如何显示选定文件的列表?

用于 React 的 ngx-extended-pdf-viewer

如何让 ag-Grid 事件读取私有方法?

JsPDF Autotable 将图像添加到列中出现错误:属性getElementsByTagName不存在

错误:服务或构建Angular 项目时模块构建失败

如何将模块导入独立指令

在 Angular material 表单元格中渲染 html

ng14中具有强类型表单的FormBuilder

angular 13 ng 构建库失败(ivy部分编译模式)

如何以编程方式关闭 ng-bootstrap 模式?

清除Angular2中的输入文本字段

将环境变量传递给Angular 库

如何在数据表angular material中显示空消息,如果未找到数据

Angular2 - 如何开始以及使用哪个 IDE

Angular 2 Material 2 日期 Select 器日期格式

在 Angular 组件模板中添加脚本标签

RxJS:takeUntil() Angular 组件的 ngOnDestroy()

如何在 angular2 中的 div 的 contenteditable 上使用 [(ngModel)]?

'ng' 不是内部或外部命令、可运行程序或批处理文件