简介
angular2-serverpagination-datatable
是一个 Angular2 的分页方案,主要解决分页数据量大的情况下前端渲染瓶颈的问题。它会从后端获取分页数据并渲染成表格形式,提供了非常方便的筛选和排序功能。
使用方法
安装
使用 npm 安装:
npm install angular2-serverpagination-datatable --save
引入模块
在 @NgModule
引入模块:
-- -------------------- ---- ------- ------ - ------------------------------- - ---- -------------------------------------- ----------- -------- - ------------------------------- -- --- -- ------ ----- --------- --
HTML 部分
在 HTML 中,我们需要使用 datatable
标签并绑定数据和方法,同时支持 loading
和 error
情况下的展示:
<datatable [datatableOptions]="options" [tableData]="data" [onDataRequest]="requestData"> <div *ngIf="error" class="error-container">{{error}}</div> <div class="loading-container" *ngIf="loading"> <mat-spinner></mat-spinner> </div> </datatable>
绑定数据
我们需要在组件中定义 options
和 data
:
-- -------------------- ---- ------- ------ - --------- - ---- ---------------- ------------ --------- --------------- ------------ -------------------------------- ---------- -------------------------------- -- ------ ----- ----------- - ------- - - --------------- --------- -------------------- ----- ------------------ ----- --------- --- --------------------- --------- --- ------ --------------- --- ------- ------- -------------- ----- ------ ------------------ --------- ----- -- ----- --- - --- ----------- - -------- ----- --------------- -- - ------ --------------------------------------------- -------- --------------------- -- - --------------- - --------------- ------ ---------- ---- -- -
注意到我们在 requestData
中使用一个方法从后端获取数据。params
参数为当前的分页和排序等信息,我们使用 http.get
方法获取后端数据。同时我们需要在 pipe
中使用 map
方法,这是由于 HTTP 库使用了 RxJS 而需要进行类型转换。
API 文档
属性
datatableOptions
-(必需) 数据库表配置选项。tableData
-(必需) 表格所需数据。onDataRequest
- (必需)从服务获取数据的回调函数
datatableOptions
paginationType
:可选值为'client'
或'server'
,表示分页类型:前端分页还是后端分页。pageSize
:每页显示记录数。默认为10
。elementsPerPageLabel
:控件显示每页多少项的标签,默认为'Elements per page'
。noResultsLabel
:表格中无结果时的文本,默认为'No results found'
。nextPageLabel
:“下一页”按钮上的文本,默认为'Next Page'
。previousPageLabel
:“上一页”按钮上的文本,默认为'Previous Page'
。serverMethod
:指定服务端数据请求方法,便于支持 http post 等serverSideFiltering
:可选值为true
或false
,表示是否后端过滤,默认为false
意为前端过滤。serverSideSorting
:可选值为true
或false
,表示是否后端排序,默认为false
意为前端排序。totalRecordsField
:后端返回统计的总记录数字段名,默认为'totalRecords'
。dataField
:后端返回表格数据的字段名,默认为'data'
。
示例代码
组件
-- -------------------- ---- ------- ------ - --------- - ---- ---------------- ------ - --- - ---- ----------------- ------ - ---------- - ---- ----------------------- ------ - ---------- - ---- ------- ------------ --------- ----------- ------------ ----------------------- ---------- ----------------------- -- ------ ----- ------------ - ------- - - --------------- --------- -------------------- ----- ------------------ ----- --------- --- --------------------- --------- --- ------ --------------- --- ------- ------- -------------- ----- ------ ------------------ --------- ----- -- ----- --- - --- ----------- - -------- ----- --------------- -- - ------ --------------------------------------------- -------- --------------------- -- - --------------- - --------------- ------ ---------- ---- -- ------------------- ----- ----------- -- -
HTML
<div style="width: 500px;"> <datatable [datatableOptions]="options" [tableData]="data" [onDataRequest]="requestData"> <div *ngIf="error" class="error-container">{{error}}</div> <div class="loading-container" *ngIf="loading"> <mat-spinner></mat-spinner> </div> </datatable> </div>
总结
本文介绍了 angular2-serverpagination-datatable
的使用教程,以及 API 文档和示例代码。希望可以帮助大家更好地解决前端分页数据量大的问题,在实际开发中提供便捷和效率的操作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600553fc81e8991b448d1553