使用 JS 插件排序 table 会导致错误
Sorting table with JS plugin causes bug
我的表格排序 JS 插件有问题。它被命名为 "Sortable"。我已经完成了文档中描述的所有设置来设置所有内容。排序有效,但日期和价格存在问题。
所以当我对日期列进行升序排序时,行看起来像这样:
- 2018 年 10 月 22 日
- 23.02.2019
- 2019 年 2 月 28 日
- 28.12.2018
您可以在此处查看日期配置:
https://github.hubspot.com/sortable/api/options/
可能是德语日期格式的问题,但我不知道如何解决这个问题。也许你可以看看它?这真的很棒!
它按字母顺序排列。因为 javascript Date.parse
无法解析德语日期格式。您应该添加自定义类型。
以下是 Sortable 内部设置默认值的方式。
sortable.setupTypes [{
name: 'numeric'
defaultSortDirection: 'descending'
match: (a) -> a.match numberRegExp
comparator: (a) -> parseFloat(a.replace(/[^0-9.-]/g, ''), 10) or 0
}, {
name: 'date'
defaultSortDirection: 'ascending'
reverse: true
match: (a) -> not isNaN Date.parse a
comparator: (a) -> Date.parse(a) or 0
}, {
name: 'alpha'
defaultSortDirection: 'ascending'
match: -> true
compare: (a, b) -> a.localeCompare b
}]
注意 match
和 date
类型的 comparator
。
将它们更改为:
match: (a) -> not isNaN Date.parse a.split('.').reverse().join('.')
comparator: (a) -> Date.parse(a.split('.').reverse().join('.')) or 0
并在 sortable.init() 调用后添加这些。
顺便说一下,这是 coffeescript。所以相应地使用它。
我的表格排序 JS 插件有问题。它被命名为 "Sortable"。我已经完成了文档中描述的所有设置来设置所有内容。排序有效,但日期和价格存在问题。
所以当我对日期列进行升序排序时,行看起来像这样:
- 2018 年 10 月 22 日
- 23.02.2019
- 2019 年 2 月 28 日
- 28.12.2018
您可以在此处查看日期配置:
https://github.hubspot.com/sortable/api/options/
可能是德语日期格式的问题,但我不知道如何解决这个问题。也许你可以看看它?这真的很棒!
它按字母顺序排列。因为 javascript Date.parse
无法解析德语日期格式。您应该添加自定义类型。
以下是 Sortable 内部设置默认值的方式。
sortable.setupTypes [{
name: 'numeric'
defaultSortDirection: 'descending'
match: (a) -> a.match numberRegExp
comparator: (a) -> parseFloat(a.replace(/[^0-9.-]/g, ''), 10) or 0
}, {
name: 'date'
defaultSortDirection: 'ascending'
reverse: true
match: (a) -> not isNaN Date.parse a
comparator: (a) -> Date.parse(a) or 0
}, {
name: 'alpha'
defaultSortDirection: 'ascending'
match: -> true
compare: (a, b) -> a.localeCompare b
}]
注意 match
和 date
类型的 comparator
。
将它们更改为:
match: (a) -> not isNaN Date.parse a.split('.').reverse().join('.')
comparator: (a) -> Date.parse(a.split('.').reverse().join('.')) or 0
并在 sortable.init() 调用后添加这些。
顺便说一下,这是 coffeescript。所以相应地使用它。