【问题标题】:angular material table load data after sorting分拣后角料表加载数据
【发布时间】:2019-06-28 06:29:25
【问题描述】:

我正在使用角度材料表来显示数据。目前,我想加载从状态排序的角度材料表。我有 3 个状态 - 完成、待处理和失败。我希望失败记录最后显示,完整和待处理的记录应该首先显示。

我使用下面的排序功能来做到这一点,但它不起作用。

  this.dataSource = new MatTableDataSource(results['InvoiceHeaders']);
  this.dataSource.sortingDataAccessor = (item, property) => {
    switch (property) {
      case 'status': return item.element.status;
      default: return item[property];

      //     default: return item[property];
    }
  };
  this.dataSource.sort = this.viewsort;

你能帮我做这些类型的样本吗?

谢谢

【问题讨论】:

  • 我想你可以创建一个像statusList={complete:0,pending:1,fail:2} 这样的对象并生成return statusList[item.element.status],但我无法测试它
  • 我在哪里创建对象??
  • 是你的component.ts中的一个变量
  • 我找到了解决办法

标签: javascript angular angular-material


【解决方案1】:

一种解决方案可能是创建一个字段“statusWeight”并为“status”列分配一个可排序的数值,然后在该任意列上使用默认材料排序。

  • 完成以具有值 1
  • 等待值为 2
  • 没有值 3

相关HTML

<table mat-table [dataSource]="dataSource" matSort matSortActive="statusWeight" matSortDirection='asc' class="mat-elevation-z8">
....
</table>

工作stackblitz available here

【讨论】:

    猜你喜欢
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-14
    • 1970-01-01
    • 2017-11-27
    • 2020-11-25
    • 1970-01-01
    相关资源
    最近更新 更多