【发布时间】:2017-09-07 11:46:13
【问题描述】:
我在 Aurelia 组件中使用 DataTables jQuery 插件。使用列排序,它很好地排除了带有日期的列。
在此列中,我使用 value-convertet 将 isoString 值转换为 DD.MM.YYYY 日期格式。值转换器的使用会导致错误的日期列排序,但如果我不使用值转换器,一切都会正常工作。不幸的是,我没有找到它无法正常工作的任何原因。
错误的过滤示例:我在18.05.2017 之前看到日期值类似于27.05.2010 的行
数据表初始化:
$('#searchResultsTable').dataTable({
destroy: true,
searching: false,
paging: false,
orderMulti: false,
order: [[ 2, "desc" ]],
dateFormat: 'DD.MM.YYYY'
});
日期值转换器(使用 moment 库):
import * as moment from 'moment';
export class DateFormatValueConverter {
toView(value: Date, format: string): string {
if (value) {
return moment(value).format(format);
}
return null;
}
fromView(value: string, format: string): Date {
var isValid = moment(value, format, true).isValid();
if (value && isValid) {
return moment(value, format).toDate();
}
return null;
}
}
【问题讨论】:
-
当您说使用 ValueConverters 时的顺序是错误 - 它实际上与您不使用它们时的物理顺序相同吗?
-
我不明白你说的“物理顺序”是什么意思。根据我给出的错误排序示例,如果我不使用 Value Converter
-
你说使用值转换器时顺序错误,但实际上与不使用时的顺序是一样的吗?
-
用例子添加图片来提问