#angularjs #sorting #datatables #angular-datatables
#angularjs #сортировка #таблицы данных #angular-таблицы данных
Вопрос:
Я использую этот пример https://l-lin.github.io/angular-datatables/archives /#!/bootstrapIntegration для настройки моих таблиц данных. Проблема в том, что он не сортирует дату и double
цену.
Пока я пытаюсь отсортировать дату, но не удалось. Я нашел много ответов, но никто не работает.
Мой javascript
$scope.dtOptions = DTOptionsBuilder.newOptions()
.withPaginationType('full_numbers')
.withOption('order', [0, 'desc']);
$scope.dtColumnDefs = [
{ targets: 0, type: 'date' }
];
Мой html
<table datatable="" dt-options="dtOptions" dt-column-defs="dtColumnDefs" class="row-border hover"></table
Я также пробовал что-то вроде
$scope.dtColumnDefs = [
DTColumnDefBuilder.newColumnDef(0).withOption('type', 'date'),
];
И я действительно пытался изменить date
на dd/MM/yy
, но не работает. Моя дата в столбце отображается как 23/03/19
Ответ №1:
Сортировка таблиц данных по дате основана на Date.parse()
, поэтому любая дата, недоступная анализу (или временная метка), нарушит сортировку.
Дата в североевропейской нотации ala 23/03/19
разбирается на NaN
, и вот тут-то у вас и возникает проблема. Вы можете проанализировать дату в render()
обратном вызове :
DTColumnDefBuilder.newColumnDef(0).renderWidth(function(data) {
data = data.split('/')
return Date.parse(data[1] '-' data[0] '-' data[2]).valueOf()
})
или вы можете использовать пользовательский плагин сортировки, такой как date-eu
-> https://datatables.net/plug-ins/sorting/date-eu