使用ngtable我有以下问题。当我发出一个http get请求并获得数据时,一切都可以正常使用ngtable,但它没有给我订购的可能性。但是,如果我创建一个新的http get请求(没有重新加载页面)。然后向我展示包含新数据的表,正确显示新请求的数据量,但不显示分页,而不是选择每页的行数。我尝试了重载表参数,没有结果。
我的代码:
$scope.httpget = function(uri)
{
$scope.data=[];
$http.get(uri).then(
function(result){
$scope.data = result.data;
$scope.tableParams = new ngTableParams({
page: 1,
count: 10,
filter: {
message: ''
},
sorting: {
timestamp: 'asc'
}
},
{
getData: function($defer, params) {
var orderedData = params.sorting() ?
$filter('orderBy')($scope.data, params.orderBy()) :
$scope.data;
params.total(orderedData.length);
$defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
}
});
}
);
}

<table ng-table='tableParams'>
<tr ng-repeat='d in $data | filter:search'>
<td data-title="'Collected Timestamp'" sortable="'timestamp'"> {{d.timestamp}} </td>
<td data-title="'Tag Name'", sortable="'tag_name'"> {{d.tag_name}} </td>
<td data-title="'Value'", sortable="'value'"> {{d.value}} </td>
<tr>
</table>
&#13;
第二次http get(无分页)后结果不好
答案 0 :(得分:4)
你使用过
吗?$scope.tableParams.total(data.length)
和
$scope.tableParams.reload();
在任何时候?您是如何做另一个获取请求的?&#39;?如果没有帮助,请尝试上传您的代码
答案 1 :(得分:3)
这也发生在我身上。我诊断的问题是ng-table
实例的重复初始化。
您需要将ng-table
的初始化放入单独的函数中。(在我的例子中,它是init()
)
在您的代码中,它应该是这样的:
$scope.data = [];
init();
function init() {
$scope.tableParams = new ngTableParams({
page: 1,
count: 10,
filter: {
message: ''
},
sorting: {
timestamp: 'asc'
}
},{
getData: function ($defer, params) {
var orderedData = params.sorting() ?
$filter('orderBy')($scope.data, params.orderBy()) :
$scope.data;
params.total(orderedData.length);
$defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
}
});
};
$scope.httpget = function (uri) {
$http.get(uri).then(function (result) {
$scope.data = result.data;
$scope.tableParams.total($scope.data.length);
$scope.tableParams.reload();
}
);
}
希望这有帮助。