В Angular JS, как отключить функцию сортировки столбцов для выбранных столбцов

В таблице данных jquery я могу отключить сортировку определенного столбца с помощью

"aoColumnDefs": [{
                'bSortable': false,
                'aTargets': [0, 7]
            }]

Кто-нибудь знает, как это сделать в angular JS?

<table class="custom-table" datatable="ng" dt-options="dtOptions" id="contacts-list-table">
</table>

myApp.controller("ListCtr", ['DTOptionsBuilder', function(DTOptionsBuilder) {
  $scope.dtOptions = DTOptionsBuilder.newOptions().withDOM('C<"clear">lfrtip') 
}])

этот код скрывает мою панель поиска, но не может скрыть функцию сортировки моего первого и четвертого столбцов?


person vinothini    schedule 24.06.2015    source источник
comment
Вы хотите, чтобы ваши элементы tr не кликабельны? Можете ли вы опубликовать код tr? Было бы полезно, если бы вы вставили полный код таблицы.   -  person Sidharth Panwar    schedule 24.06.2015
comment
Один из способов — использовать ng-click = $event.stopPropogation(); для этого элемента div/tr и манипулировать им в js.... даст вам более конкретный ответ, если вы дадите более подробную информацию о том, как вы реализовали таблицу   -  person clearScreen    schedule 24.06.2015
comment
можете ли вы предоставить скрипку или плункер или опубликовать свой код для таблицы   -  person akashrajkn    schedule 24.06.2015


Ответы (2)


Эквивалентность angular-datatables

aoColumnDefs: [{ bSortable: false, aTargets: [0, 4] }]

is

$scope.dtColumnDefs = [
   DTColumnDefBuilder.newColumnDef(0).notSortable(),
   DTColumnDefBuilder.newColumnDef(4).notSortable()
];

...

<table class="custom-table" dt-column-defs="dtColumnDefs" datatable="ng" dt-options="dtOptions" id="contacts-list-table"></table>

Вы должны включить DTColumnDefBuilder в контроллер:

myApp.controller("ListCtr", ['DTOptionsBuilder', 'DTColumnDefBuilder',
    function(DTOptionsBuilder, DTColumnDefBuilder) {
       $scope.dtOptions = DTOptionsBuilder.newOptions().withDOM('C<"clear">lfrtip');
       $scope.dtColumnDefs = [
          DTColumnDefBuilder.newColumnDef(0).notSortable(),
          DTColumnDefBuilder.newColumnDef(4).notSortable()
       ];
    }
])

см. http://l-lin.github.io/angular-datatables/archives/#!/api.

person davidkonrad    schedule 25.06.2015
comment
знаете ли вы, как установить aLengthMenu: [[5, 10, 15, 20, -1], [5, 10, 15, 20, All]] в таблице угловых данных - person vinothini; 25.06.2015
comment
@vinothini, отлично, у вас получилось (очевидно?) - в отношении aLengthMenu нет переведенного имени/метода, но тогда вы должны использовать .withOption('aLengthMenu', [[5, 10, 15, 20, -1],[5, 10, 15, 20, "All"]]) в вашем случае $scope.dtOptions = DTOptionsBuilder.newOptions().withDOM('C<"clear">lfrtip').withOption('aLengthMenu', [[5, 10, 15, 20, -1],[5, 10, 15, 20, "All"]]); ....withOption() просто добавьте this[key] = value к литералу параметров. - person davidkonrad; 25.06.2015
comment
@davidkonrad, я точно страдаю от той же проблемы. Можете ли вы помочь? Вот ссылка на мой вопрос stackoverflow.com/questions/44501820/ - person query; 12.06.2017

Я пробовал все возможные решения для отключения сортировки, но единственное, что сработало для меня, это: order: false. Используйте это для справки

Мои dtOptions были такими, как показано ниже

vm.dtOptions = {
        dom: '<"top"f>rt<"bottom"<"left"<"length"l>><"right"<"info"i><"pagination"p>>>',
        pagingType: 'simple',
        autoWidth: false,
        responsive: true,
        order: false, // This fixed the issue
        columnDefs : [{
            targets: [0, 1, 2, 3, 4, 5, 6, 7], // column or columns numbers
            orderable: false,  // This was not working
            filterable: false,
            sortable  : false                
            },
            {
                // Target the actions column
                targets           : 8,
                responsivePriority: 1,
                filterable        : false,
                sortable          : false,
                orderable: false
            }                
        ]
    }
person Black Mamba    schedule 16.10.2017