我已经使用$ scope.tableParams.sorting()方法在ng-table中进行了排序。鼠标单击列标题将在升序和降序之间切换,但我想在升序,降序和原始(未排序)行顺序之间切换。任何提示如何实现这一目标?
我尝试过类似的东西:
if ($scope.tableParams.isSortBy(colName, 'asc')) {
$scope.tableParams.sorting({colName: 'desc'});
}
else if($scope.tableParams.isSortBy(colName, 'desc')) {
$scope.tableParams.sorting({colName: ''});
}
else{
$scope.tableParams.sorting({colName: 'asc'});
}
TNX。
答案 0 :(得分:0)
我可以借助按钮重置排序:
<button id="resetSorting" type="button" ng-click="resetSort()"> Reset </button>
和一个功能:
$scope.resetSort = function(){
$scope.tableParams.sorting({colName: ''});
};
编辑:我猜您的代码看起来像这样:
$scope.tableParams = new ngTableParams({
page: 1,
count: 10,
sorting: {
colName: 'desc'
}
}, {
total: $scope.data.length, // length of data
getData: function($defer, params) {
// use build-in angular filter
var orderedData = params.sorting() ?
$filter('orderBy')($scope.data, params.orderBy()) :
$scope.data;
orderedData = params.filter() ?
$filter('filter')(orderedData, params.filter()) :
orderedData;
params.total(orderedData.length); // set total for recalc pagination
$defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
// check if value is true
console.log($scope.tableParams.isSortBy(colName, 'asc'));
if ($scope.tableParams.isSortBy(colName, 'asc')) {
$scope.tableParams.sorting({colName: ''});
}
}
});
如果您现在查看我的代码,当我尝试对表进行排序以使'colName'升序时,我仍然在控制台中获得值'false'。这意味着:
if ($scope.tableParams.isSortBy(colName, 'asc')) {
$scope.tableParams.sorting({colName: ''});
}
永远不会触发,表格不会被排除。
我认为你有同样的问题,你的if和else句子不会触发,或者它们是什么?