嘗試這樣:
查看:
<table class="table">
<thead style="background-color: #eee">
<tr>
<td>Dispature</td>
<td>Service</td>
<td>Host</td>
<td>Value</td>
</tr>
</thead>
<tbody>
<tr ng-repeat="x in app.metricsList">
<td>{{x.dispature}}</td>
<td>{{x.service}}</td>
<td>{{x.host}}</td>
<td>{{x.value}}</td>
</tr>
</tbody>
</table>
<div align="center">
<uib-pagination items-per-page="app.itemPerPage" num-pages="numPages"
total-items="app.totalItems" boundary-link-numbers="true"
ng-model="app.currentPage" rotate="false" max-size="app.maxSize"
class="pagination-sm" boundary-links="true"
ng-click="app.getPagableRecords()"></uib-pagination>
<div style="float: right; margin: 15px">
<pre>Page: {{app.currentPage}}/{{numPages}}</pre>
</div>
</div>
的js控制器:
app.controller('AllEntryCtrl',['$scope','$http','$timeout','$rootScope', function($scope,$http,$timeout,$rootScope){
var app = this;
app.currentPage = 1;
app.maxSize = 5;
app.itemPerPage = 5;
app.totalItems = 0;
app.countRecords = function() {
$http.get("countRecord")
.success(function(data,status,headers,config){
app.totalItems = data;
})
.error(function(data,status,header,config){
console.log(data);
});
};
app.getPagableRecords = function() {
var param = {
page : app.currentPage,
size : app.itemPerPage
};
$http.get("allRecordPagination",{params : param})
.success(function(data,status,headers,config){
app.metricsList = data.content;
})
.error(function(data,status,header,config){
console.log(data);
});
};
app.countRecords();
app.getPagableRecords();
}]);
控制器:
@RestController
public class HomeController {
@Autowired
private HomeRepo repo;
@RequestMapping(value = "allRecordPagination", method = RequestMethod.GET)
public Page<Metrics> getAllRecordPagination(@RequestParam("page") int page, @RequestParam("size") int size){
return repo.findAll(new PageRequest(page-1, size));
}
}
庫:
@Repository
public interface HomeRepo extends JpaRepository<Table, String>{
}
如果你想讓你的數據在表中表示,我可以建議你[Dandelion Datatables](http://dandelion.github.io/components/datatables)。這個框架(基於JQuery Datatable構建)具有許多可以使用的功能(例如分頁,排序等)。由於「服務器端處理」功能,它適用於大數據。我們用它來代表超過一百萬個條目,並且一切都很好。 我寫了關於客戶端,順便說一句:) – Enigo
Thx enigo ..我檢查了它,它看起來很好,使用簡單..所以它適用於高流量與百萬條目(頁面加載速度,內存和CPU消耗)? ..也出於好奇,你知道pagedListHolder如何工作?我的意思是它真的會爲每個用戶加載內存中的所有對象(因爲它通常保存在會話屬性中)?我的意思是如果你有成千上萬的記錄(甚至幾萬個),並且有數以千計的併發用戶和會話,那麼服務器會因超載而爆炸,對嗎? –
是的,它的工作速度與您的服務器端能夠發回結果一樣快。這種類型的任務的Datatable的關鍵特性是「服務器端處理」。基本上它允許你只獲得一個特定頁面的條目,而不是幾萬條。但另一方面,用戶執行的每個操作(選擇下一個\ prev頁面,排序等)在服務器端完成。所以,任務是讓服務器工作非常快。不幸的是,我對pagedListHolder一無所知,根據google的結果,它似乎不是很流行:) – Enigo