7

AngularJS で作業しているスマート テーブルがあります。テーブルは、データを検索して並べ替えるためにカスタム パイプを使用します。また、表示する行数を選択できるように、テーブルにページネーションが機能していることと、ドロップダウン ボックスが必要です (データ テーブルを考えてください)。

検索と並べ替えの場合、カスタム パイプは ajax リクエストを問題なく起動します。ただし、ページ番号のいずれかをクリックするか、表示する行数を変更すると、パイプは起動されません。

ページ番号は setPage(page) を呼び出すように設定されているようですが (これは st-pagination ディレクティブによって設定されます)、何も起こらず、エラーもスローされません。

表示される行数が変更されたとき、またはページネーション コントロールでページ # がクリックされたときに、カスタム パイプを起動するにはどうすればよいですか?

ここに私のHTMLがあります:

<table class="table table-striped table-bordered" st-table="leadsCollection" st-safe-src="leads" st-pipe="serverFilter">
...
<tbody>
   <tr data-toggle="modal" data-target="#modal-source" ng-repeat="source in leadsCollection" ng-click="rowClick($index);">
      <td>{{source.leaddate}}</td>
      <td>{{(source.distance > 100) ? 'Long Distance' : 'Local'}}</td>
      <td>{{source.origin_city}}, {{source.origin_state}}</td>
      <td>{{source.destination_city}}, {{source.destination_state}}</td>
      <td>{{source.est_move_date}}</td>
      <td>{{source.distance}} mi</td>
      <td>{{source.number_bedrooms}} br</td>
      <td></td>
   </tr>
</tbody>
<tfoot>
  <tr>
     <td colspan="8">
        <div class="form-group col-md-1">
            <label>Show:</label> <select class="form-control" ng-model="itemsByPage"><option value="10">10</option><option value="25">25</option><option value="50">50</option><option value="100">100</option></select>
        </div>
        <div class="pull-right" st-pagination="" st-items-by-page="itemsByPage"></div>
     </td>
  </tr>
</tfoot>
</table>

そして、ここにコントローラーがあります:

.controller('Leads', function ($scope, $http) {
$scope.leads = [];
$scope.leadsCollection = [].concat($scope.leads);
$scope.itemsByPage = "10";

$scope.rowClick = function (idx)
{
    $scope.editor = $scope.leads[idx];
}

$scope.serverFilter = function(tablestate)
{
    $http.post("/portal/api/loadleads",tablestate).success(function(response){
        console.log(response);
        $scope.leads = response;
        $scope.leadsCollection = [].concat($scope.leads);
    });
}

})
4

1 に答える 1