我正在尝试在我的应用程序中设置 ngTable,但它不支持按日期过滤,而且我不知道如何实现它。我最初将数据中的日期作为时间戳,这使我能够由于时间戳的增量性质而对列进行正确排序,但显然我无法输入 9 月并过滤数据。
// Example row data from data array
{
"index": 0,
"id": "54587313ac91d561b246bf90",
"user": "user3",
"date": 1390054873445,
"status": "in-progress"
}
我尝试将其设置为字符串,但是当您过滤或排序时,它不会产生升序/降序顺序,而是按照数据中组织的顺序排列。
// Date output not in asc/desc if use date string
September 8, 2014
September 27, 2014
September 23, 2014
September 26, 2014
我一直在浏览 ngTable 并发现我可以更改表的标题,所以我抓住了一个副本来编辑并添加某种自定义过滤器或指令?也许我应该使用不同的日期字符串?我创建了一个Plunker使用时间戳数据的应用程序,该数据经过过滤以显示给用户并可排序,但我希望能够通过输入月份、日期和/或年份进行过滤,即。 2014年9月等
// Example date column setup
<td data-title="'Date'"
sortable="'date'"
filter="{ 'date': 'text' }"
ng-bind="(doc.date | date:mediumDate)"></td>
UPDATE我刚刚注意到在表格的底部,您可以添加自己的过滤器。我最终弄清楚了如何将外部文件加载到自定义过滤器而不是内联模板:
<td data-title="'Date'"
sortable="'date'"
filter="{ 'date': 'date' }" // add name of filter (date), to the value of assoc array
ng-bind="(loan.date | date:mediumDate)"></td>
或者将该文件放置在应用程序中更有用的位置:
<td data-title="'Date'"
sortable="'date'"
filter="{ 'date': 'date', templateURL: '/www/app/ng-table/filters/date.html' }"
ng-bind="(loan.date | date:mediumDate)"></td>
仍然不知道该怎么做,但会继续努力让它发挥作用,我做了一个Plunker到目前为止我所掌握的内容(如果有帮助的话)。这应该是 date.html 中的指令吗?