2015-11-29 16 views
8

Tôi đang sử dụng ng-table plugin để đánh số trang một bảng như thế này:pagination với ng-bàn trong góc

$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-bảng gọi getData() chức năng mọi người dùng nhấp vào số trang. Và truy cập toàn bộ điều một lần nữa và lấy tất cả các bản ghi và hiển thị chúng. Vì vậy, phân trang về cơ bản là vô dụng.

Tôi cần phải có phân trang phía khách hàng. Có thể với ng-table?

Cố gắng này cũng

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

kết quả tương tự với ở trên cũng!

+1

bạn có thể thử tách cuộc gọi được hỗ trợ hay không. Bạn có thể thực hiện cuộc gọi phụ trợ bên ngoài giải mã 'ng-table', tìm nạp dữ liệu và lưu trữ ở đâu đó và trong' getData() 'bạn có thể trả về dữ liệu được lưu trữ. –

+0

Xem chỉnh sửa của tôi ở trên – beNerd

+0

đặc biệt của bạn về ng-table ?? – Aravind

Trả lời

1

Với phiên bản mới nhất của ng-bảng tôi kết thúc bằng cách sử dụng sau đây:

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

phía khách hàng pagination là đúng nhờ làm việc để dataset.

Vì vậy, nó nên được một cái gì đó như thế này cho 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-bảng có nhiều vấn đề. Tôi chuyển mã của mình thành jquery Datatable. Thử nó.