2015-11-29 9 views
8

に私はこのようなテーブルをページ付けするng-tableプラグインを使用しています:改ページは角

$scope.ngtableParams = new ngTableParams({}, { 
       counts:false, 
       getData: function(params) { 
        return $http.get($rootScope.app.authApi + 'questions/' + selectedSubtopic.id).then(function(data) { 
         params.total(data.data.length); 
         return data.data; 
        }); 
       } 
      }); 

FunnilyのNGテーブルは、ユーザーがページ番号をクリックする毎回のgetData()関数を呼び出します。全体をもう一度叩いて、すべてのレコードを取り出して表示します。だから、ページネーションは本質的に役に立たない。

私はクライアントサイドページネーションが必要です。 ng-tableで可能ですか?

は、同様に上記でこれだけでなく

$http.get($rootScope.app.authApi + 'questions/' + selectedSubtopic.id) 
       .success(function(data){ 
        $scope.ngtableParams = new ngTableParams({count:5}, { 
         counts:[], 
         paginationMaxBlocks: 13, 
         paginationMinBlocks: 2, 
         total:data.length, 
         getData: function(params) { 
          return data; 
         } 
        }); 
       }); 

同じ結果をみました!

+1

バックアップされたコールを分離できますか。バックエンド呼び出しを 'ng-table'デクレレーションの外で行い、データをフェッチしてどこかに格納し、' getData() 'に格納されたデータを返すことができます。 –

+0

上記の私の編集を参照してください – beNerd

+0

あなたのng-tableについてのあなたの特に?? – Aravind

答えて

1

私は次を使用して終了NG-テーブルの最新バージョンでは:

function IssueCtrl(NgTableParams, IssueService) { 
    var self = this; 

    loadTable(); 

    function loadTable() { 
     IssueService.getIssues().then(function (issues) { 
      self.tableParams = new NgTableParams({ 
       page: 1, 
       count: 5 
      }, { 
       dataset: issues // might be data instead of dataset depending on ng-table version 
      }); 
     }); 
    } 
} 

クライアント側の改ページが正しくdatasetのおかげで取り組んでいます。

$http.get($rootScope.app.authApi + 'questions/' + selectedSubtopic.id) 
      .success(function(result){ 
       $scope.ngtableParams = new ngTableParams({count:5}, { 
        counts:[], 
        paginationMaxBlocks: 13, 
        paginationMinBlocks: 2, 
        total:result.length, 
        dataset: result // might be data instead of dataset depending on ng-table version 
       }); 
      }); 
0

NG-テーブルには多くの問題があります:

だから、OPのためにこのようなものでなければなりません。コードをjquery Datatableに変更します。それを試してみてください。