我有一个AngularJS应用程序。我从服务器加载大量数据并将其显示在数据表中。我正在使用angular-datatables作为我的数据表。目前,我的HTML看起来像这样:
<table datatable="orders" dt-options="dtOptions" dt-column-defs="orderColumns">
<thead>
<tr>
<th>ID</th>
<th>Date</th>
<th>Customer</th>
<th>Amount</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="order in orders">
<td>{{order.ID}}</td>
<td>{{order.OrderDate}}</td>
<td>{{order.Customer}}</td>
<td>{{order.Amount}}</td>
</tr>
</tbody>
</table>
我绑定的属性在我的控制器中。看起来像这样:
$scope.currentPageNumber = 1;
$scope.dtOptions = {displayLength: 25, deferRender: true};
$scope.orders = [];
$scope.loadOrders = function() {
// hit the server here and get orders for the selected page
// getOrders($scope.currentPageNumber);
};
阅读完文档后,我仍然坚持如何实现服务器端分页。具体来说,我不知道如何处理控件中的寻呼机。
谢谢!
答案 0 :(得分:0)
它取决于你的特定后端如何处理分页。
对于Python,我使用Flask-SQLAlchemy,它使我的Flask和SQLAlchemy应用程序中的分页变得轻而易举。您传入当前页码和(可选)每页您感兴趣的项目数 - 我将它们作为查询参数发送到XHR中 - 它只从数据库中返回属于该偏移量的项目长度。
大多数其他后端框架具有非常相似的分页操作,例如same thing in PHP with Laravel
在前端,我一直在利用Angular ui-boostrap pagination control。