Mun*_*nna 7 sorting typescript angular-material angular
我正在使用anuglar材料表并使用matSort进行排序.但它没有记录日期/时间列.它将datetime列作为字符串.
如何在角度4材料中对日期/时间列进行排序?
我的json会是这样的
{
"name": "Rule Test 5",
"time": "2017-11-17T08:34:32",
"version": 1,
"status": "SAVED"
}, {
"name": "Availability Adjustment",
"time": "2017-11-17T10:13:27",
"version": 1,
"status": "SAVED"
}, {
"name": "Class suppression",
"time": "2017-11-17T11:18:44",
"version": 1,
"status": "SAVED"
}
Run Code Online (Sandbox Code Playgroud)
我的桌子看起来像这样
-------------------------------
name | version | status | date |
-------------------------------
...
..
..
--------------------------------
Run Code Online (Sandbox Code Playgroud)
Sag*_*che 13
这是解决方案:
this.dataSource.sortingDataAccessor = (item, property): string | number => {
switch (property) {
case 'fromDate': return new Date(item.fromDate).toNumber();
default: return item[property];
}
};
Run Code Online (Sandbox Code Playgroud)
MatTableDataSource有sortedDataAccessor,我们可以根据需要自定义.
小智 5
使用最新版本的 Angular Material 5,您应该只添加一个属性“mat-sort-header”,它会立即排序。此外,您可以添加一些 DatePipe,以便您可以格式化该 Date 对象。
<mat-table>
<ng-container matColumnDef="fromDate">
<mat-header-cell *matHeaderCellDef mat-sort-header>
<span translate>date</span>
</mat-header-cell>
<mat-cell *matCellDef="let row">
{{row.fromDate | date: 'dd MMM., yyyy, HH:mm' }}
</mat-cell>
</ng-container>
</mat-table>
Run Code Online (Sandbox Code Playgroud)
我也认为 Andriy 已经帮助了这个 plnkr ( plnkr.co/edit/z1BmTxFWAEvWQuMIAXCv?p=preview )
| 归档时间: |
|
| 查看次数: |
10593 次 |
| 最近记录: |