Angular Material Table: 自定义排序文件夹和文件项

Angular Material Table: custom sort foler and file items

我的 mat-table 中有不同类型的项目:文件和文件夹。
它们必须像在 Microsoft 的文件资源管理器中一样进行排序。文件夹不能与文件夹分开,也不能与文件分开。
所有其他排序规则保持不变。

有谁知道如何解决这个问题? 提前致谢!

您必须覆盖附加到 table 的 MatTableDataSource 上的 sortData。这是负责排序记录的函数,例如

this.dataSource.sortData = (data: YourObjectType[], sort: MatSort) => {
 return data.sort((a: YourObjectType, b: YourObjectType => {
   //Sorting logic here
 });
}

您可以在 github 上的 material 代码中查看默认实现: https://github.com/angular/components/blob/c2a20c4a035ef57bf598fd78bc7284c180b34c78/src/material/table/table-data-source.ts#L168