Столбец даты сортировки Angular-Datatables не работает в формате dd MM yyyy

Я использую AngularJs для создания своего внешнего проекта. Моя цель - создать динамически N таблиц данных в элементах uib-accordion, uib-accordion-group следующим образом:

<uib-accordion  class="" close-others="true">
     <div uib-accordion-group class="panel-default" ng-repeat="service in orderOrganizerCtrl.tableServiceIdFilter">
         <uib-accordion-heading>
             {{'2101_OrderEntry.Organizer.Service' | translate}}{{service.key}} <br/>
            <span>{{'2101_OrderEntry.Organizer.SelectedAgenda' | translate}}</span>  {{ orderOrganizerCtrl.getAgendaName(service.key) }} <br/>
            <span>{{'2101_OrderEntry.Organizer.DateHourSelected' | translate}}</span> {{ orderOrganizerCtrl.getAppointment(service.key) }}
         </uib-accordion-heading>
         <!-- Here, datatable content -->
         <table class="table data-table row-border hover" id="agenda_{{service.key}}" datatable="ng">
            <thead>
                <th class="sorting_asc">{{'2101_OrderEntry.Organizer.AgendaServices' | translate}}</th>
                <th class="sorting_asc sorting_1">{{'2101_OrderEntry.Organizer.DateAppointment' | translate}}</th>
                <th class="sorting_asc">{{'2101_OrderEntry.Organizer.HourAppointment' | translate}}</th>
            </thead>
            <tbody>
                <tr ng-click="orderOrganizerCtrl.selectRow(item, 'agenda_' + service.key, service.key)" ng-repeat="item in orderOrganizerCtrl.agendaSimplified track by $index" ng-if="item.serviceName === service.key">
                   <td align="center">{{item.agendaName}}</td>
                   <td align="center">{{item.dateAppointment| date:'dd MM yyyy'}}</td>
                   <td align="center">{{item.hourAppointment}}</td>
                </tr>
            </tbody>
        </table>
     </div>
</uib-accordion>

Моя проблема заключается в сортировке столбца «dateAppointment». Каждый элемент "item.dateAppointment" является элементом Date. Почему не работает сортировка? Я пытался использовать DTColumnDefBuilder с определением dtColumnDefs следующим образом:

this.dtColumnDefs = [  
    DTColumnDefBuilder.newColumnDef(1).
    .withOption('type', 'date')
];

Но это не работает (вероятно, потому что таблицы создаются динамически). Кто-нибудь может мне помочь?


person user140888    schedule 20.09.2017    source источник


Ответы (1)


Вы должны указать порядок сортировки и столбец для сортировки. Попробуй это:

$scope.dtOptions = DTOptionsBuilder.newOptions()
        .withPaginationType('full_numbers')
        .withDisplayLength(10)
        .withOption('order', [0, 'desc']);

$scope.dtColumnDefs = [
        DTColumnDefBuilder.newColumnDef(0).withOption('type', 'date'),
        DTColumnDefBuilder.newColumnDef(1).notSortable(),
        DTColumnDefBuilder.newColumnDef(2).notSortable(),
        DTColumnDefBuilder.newColumnDef(3).notSortable(),
        ...
    ];  

Здесь первый столбец будет столбцом даты. Надеюсь, поможет..

person Raghav    schedule 20.09.2017