2015-11-29 60 views
8

我使用ng-table插件進行分頁表是這樣的:分頁與NG-表角

$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; 
        }); 
       } 
      }); 

有趣地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

因此,它應該是這樣的OP:

$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-表有很多問題。我將我的代碼切換到jquery Datatable。嘗試一下。