使用AngularJS实现服务器端分页

时间:2014-12-08 20:29:50

标签: javascript angularjs

我有一个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);
};

阅读完文档后,我仍然坚持如何实现服务器端分页。具体来说,我不知道如何处理控件中的寻呼机。

谢谢!

1 个答案:

答案 0 :(得分:0)

它取决于你的特定后端如何处理分页。

对于Python,我使用Flask-SQLAlchemy,它使我的Flask和SQLAlchemy应用程序中的分页变得轻而易举。您传入当前页码和(可选)每页您感兴趣的项目数 - 我将它们作为查询参数发送到XHR中 - 它只从数据库中返回属于该偏移量的项目长度。

大多数其他后端框架具有非常相似的分页操作,例如same thing in PHP with Laravel

在前端,我一直在利用Angular ui-boostrap pagination control