【问题标题】:Sort column in angular 'datatables'角度“数据表”中的排序列
【发布时间】:2017-07-15 10:50:33
【问题描述】:

我创建了表格

<table class="table table-striped table-bordered table-hover" width="100%" datatable="ng" dt-options="options">
<thead>
<tr>
    <th> Nannie ID</th>
    <th> Name</th>
    <th> Last name</th>
    <th> Email</th>
</tr>
</thead>
<tbody>
<tr class="" ng-repeat='item in items'>
    <td><a ui-sref="admin.nanniesEdit({id:item.id})">id{{item.id}}</a></td>
    <td>{{item.profile.name}}</td>
    <td>{{item.lastname}}</td>
    <td>{{item.profile.email}}</td>
</tr>
</tbody>

按第一列顺序加载的表格:

NannieID
id1 
id10    
id12    
id13    
id2 
id3 
id5 

我想为每次点击重新排序以及首次加载时获得正确的顺序。 预期结果:

NannieID
id1 
id2 
id3 
id5 
id10    
id12    
id13    

我添加了这段代码,但它只有在加载表格时才有帮助,点击重新排序列后,我得到了错误的顺序

$scope.options = DTOptionsBuilder.newOptions().withOption('aaSorting', [[5, 'asc']])

请帮帮我

【问题讨论】:

    标签: angularjs datatables


    【解决方案1】:

    aaSorting 更改为order。您的代码将如下所示:

    $scope.options = DTOptionsBuilder.newOptions().withOption('order', [[5, 'asc']])
    

    【讨论】:

    • 为我节省了大量时间
    【解决方案2】:

    您可以使用 javascript 函数 sort

    重新排列对象数组
    $scope.asc = false;
    $scope.reorder = function(direction){
        items.sort(function(a, b) {
          return a.id - b.id;
        });
        if(asc){
            items.reverse();
            asc = false;
        }
    }
    

    并添加一个带有ng-click 调用reorder 的按钮

    <button ng-click="$scope.reorder()">Reorder</button>
    

    每按一次Reorder 按钮,您的列表就会从Asc OrderDesc Order 切换

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-19
      • 2019-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 2016-06-07
      • 2019-06-09
      相关资源
      最近更新 更多