Проблема сортировки угловых данных - PullRequest
0 голосов
/ 22 марта 2019

Я использую этот пример 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 Ответ

0 голосов
/ 23 марта 2019

Сортировка даты в DataTables основана на 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...