相关疑难解决方法(0)

Angular Material 2 DataTable使用嵌套对象进行排序

我有一个带有排序标题的普通Angular Material 2 DataTable.所有排序都是标题工作正常.除了具有对象作为值的那个.这些根本不排序.

例如:

 <!-- Project Column - This should sort!-->
    <ng-container matColumnDef="project.name">
      <mat-header-cell *matHeaderCellDef mat-sort-header> Project Name </mat-header-cell>
      <mat-cell *matCellDef="let element"> {{element.project.name}} </mat-cell>
    </ng-container>
Run Code Online (Sandbox Code Playgroud)

请注意 element.project.name

这是displayColumn配置:

 displayedColumns = ['project.name', 'position', 'name', 'test', 'symbol'];
Run Code Online (Sandbox Code Playgroud)

更改'project.name''project'不工作,也不"project['name']"

我错过了什么?这甚至可能吗?

这是Stackblitz: Angular Material2 DataTable排序对象

编辑: 谢谢你的所有答案.我已经使用动态数据了.所以我不必为每个新的嵌套属性添加switch语句.

这是我的解决方案:(创建一个扩展MatTableDataSource的新DataSource不是必需的)

export class NestedObjectsDataSource extends MatTableDataSource<MyObjectType> {

  sortingDataAccessor: ((data: WorkingHours, sortHeaderId: string) => string | number) =
    (data: WorkingHours, sortHeaderId: string): string | number => {
      let value = null;
      if …
Run Code Online (Sandbox Code Playgroud)

angular-material2 angular

54
推荐指数
5
解决办法
2万
查看次数

Angular Material 2 DataSource过滤器,带有嵌套对象

我有材料2的角度4项目,我想过滤MatTable中的数据.当我们过滤未嵌套的字段上的数据时,DataSource过滤器工作正常.

this.dataSource = new MatTableDataSource([
     { orderNumber: 1, orderInfo: { type: 'ABC'}, date: '12/3/2012 9:42:39 AM'},
     { orderNumber: 3, orderInfo: { type: 'Hello' }, date: '12/2/2018 9:42:39 AM'},
]);
Run Code Online (Sandbox Code Playgroud)

过滤器对orderNumber,日期工作正常,但在orderInfo对象中没有与type字段一起正常工作.

angular-material2 angular

12
推荐指数
3
解决办法
5947
查看次数

标签 统计

angular ×2

angular-material2 ×2