こんにちは、angularjs を使用してサーバー側のページネーションを ngtable にする方法を考えてみます。
2 つの Web サービスがあります。
localhost:8080/app/api/period
メソッドGET
は、エンティティの json リストを返します。パラメータとして、ページ番号、開始期間の範囲、停止時の範囲が渡されます。
localhost:8080/app/api/period/count
メソッドGET
が返す期間のカウント。パラメータとして、開始期間の範囲と停止時の範囲が渡されます。
this.tableParams = new ngTableParams({
page: 1,
count: 10
}, {
counts: [10],
total: 0,
getData: function($defer, params) {
$http.get('/app/api/period', {params: {
pageNumber:params.page() - 1,
rangeStart:rangeStart,
rangeStop:rangeStop}})
.success(function(data, status) {
params.total($http.get('/app/api/period/count', {params: {
rangeStart:rangeStart,
rangeStop:rangeStop}}));
$defer.resolve(data);
});
}
});
テーブルparams.total
が正しく更新されないため、テーブル内のデータは表示されますが、ページネーション ボタンは表示されません。
この場合、正しく設定されるために$http.get
、他の成功リスナーの内部で使用する方法を誰かに説明してもらえますか。$http.get
params.total