AngularJS - 使用ng-table恢复原始行顺序

时间:2015-08-31 10:08:07

标签: angularjs ngtable

我已经使用$ 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。

1 个答案:

答案 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句子不会触发,或者它们是什么?

相关问题