2015-11-07 3 views
0

Javascript:SortBy не работает в DataTable dc.js

dc.dataTable('.dc-data-table') 
    .dimension(date) 
    //... 
    .group(function (d) { 
     var format = d3.time.format('%B, %Y'); 
     return format(d.date); 
    }) 
    .sortBy(function(d) { 
     return d.date; 
    }) 
    .order(d3.ascending); 

SortBy не то, что эффект и порядок тоже. Как решить эту проблему?

Все примеры кода на https://jsfiddle.net/u073mab0/2/

+2

Ваш пример отлично подходит для меня внутри групп. Дата сортируется по возрастанию. Если я переключу вспомогательный элемент sortBy на 'return -d.date;', он сортирует по убыванию. То же самое, если я переключу порядок. Ваша проблема заключается в сортировке групп? Они также сортируются в соответствии с порядком, но поскольку они представляют собой текст, они сортируются как текст. Полагаю, вы могли бы использовать настраиваемую функцию заказа. –

+1

На [jsfiddle] (https://jsfiddle.net/jvLb2w31/2/) исправление порядка для групп. Работает на меня. Thx – jincod

ответ

4

Проблема с версией dc.js вы используете старую версию постоянного вида работает на FF/IE но не хром.

Ну, вот почему @EthanJewett может видеть, как он сортируется, потому что он может видеть это в FF или IE.

И я не мог видеть, потому что был на хроме.

Пожалуйста, используйте новую версию dc.js https://cdnjs.cloudflare.com/ajax/libs/dc/2.1.0-dev/dc.js

Рабочим пример here

Надеется, что это помогает!

+0

Эта помощь для сортировки по группе, thx. Но группы сортируются «случайными» :) – jincod

+0

Это отсортировано в алфавитном порядке, как сказал Итан. Используйте '.order', чтобы повлиять на это, хотя я не вижу способ сортировки по объекту Date, а затем форматирует его как строку. – Gordon

+0

Очень интересно, что он просто не работает в Chrome. Я посмотрел на него в Сафари, для записи. –

Смежные вопросы