2016-11-28 70 views
2

当我想格式化日期时,使用角度数据表插件排序日期时遇到问题。 让我解释一下: 当我使用当格式化日期时,无法排序的角度数据表

<td>{{date}}</td> 

结果是:

enter image description here

当我使用:

{{date | date}} 

结果是:

enter image description here

但是,当我使用:

{{date | date : 'dd/MM/yyyy'}} 

结果是:

enter image description here

即使如此,我宣布它作为一个日期格式:

_this.dtColumnDefs = [ 
    DTColumnDefBuilder.newColumnDef(0). 
    .withOption('type', 'date') 
]; 

任何想法我做错了什么?谢谢

回答

2

我们是一种稀有物种,我们这些人使用dd/MM/YYYY格式:)默认date类型仅适用于“有效”日期格式,即可以用Date.parse()评估的字符串。欧洲dd/MM/YYYY不是其中之一。之前momentjs和交融这样我想你可以通过自定义解决这个非常简单排序插件:

jQuery.extend(jQuery.fn.dataTableExt.oSort, { 
"Antt-date-pre": function (a) { 
    if (a == null || a == '') { 
     return 0; 
    } 
    var date = a.split('/'); 
    return Date.parse(date[1] + '/' + date[0] + '/' + date[2]) 
    } 
}); 

使用

DTColumnDefBuilder.newColumnDef(0). 
    .withOption('type', 'Antt-date') 

小的演示 - >http://plnkr.co/edit/00vQcoeitZlrQkprN58t?p=preview

+0

我试图复制你的代码,但使用它与: 'this.dtColumnDefs = [ DTColumnDefBuilder.newColumnDef(0) .withOption( '类型',“日期 - 欧元) ]' 但我没有打电话给jQuery代码...(请注意,当我用noSortable()替换options时,排序不按预期工作) – Antt

+0

@Antt您正在使用''date-euro''?如果您已将“Antt-date”重新命名为“date-euro”,那么它确实应该起作用(如示例中所示)。我自己在几个应用程序中完成这个工作,当然还有另一个命名。 Sry,不太明白'notSortable()'的注释,如果你想要列不可排序,但仍然想对该列进行排序,可以使用'.withOption('order',[[' asc']])''或'dt-options'中的类似内容http://plnkr.co/edit/Wo2gtv9OAPWEZ2Fkem6u?p=preview – davidkonrad

+0

对不起,我使用'date-euro'我仔细检查:/'notSortable'thingy是为了让我的dtColumnDefs被称为这似乎是这种情况... – Antt