如何修改数据表过滤器在Angular Material中的工作方式?

问题描述 投票:1回答:1

我试图在Angular Material Data Table中使用过滤器,如 -

如果我搜索“MATCHED”,那么“MATCHED”和“UNMATCHED”都会出现在Data表的status列中。

我知道这是因为数据对象被缩减并连接并且应用了过滤器(from the Angular Material Docs)。

我想只显示“MATCHED”状态,如果搜索匹配。所以我正在寻找一个过滤器,它将进行精确的字过滤,而不是子串。如何进行 ?

我读了这个post,但我无法继续。

angular angular-material angular-datatables
1个回答
1
投票

在这里你去 - StackBlitz

根据您提到的答案,我们需要定义filterPredicate:

export class TableFilteringExample {
  displayedColumns: string[] = ['position', 'name', 'weight', 'symbol'];
  dataSource = new MatTableDataSource(ELEMENT_DATA);

  constructor() {
    this.dataSource.filterPredicate = (data: PeriodicElement, filter: string) => {
      return data.name === filter;
    }
  }

  applyFilter(filterValue: string) {
    this.dataSource.filter = filterValue.trim();
  }
}

请注意,toLowerCase()已从filterValue.trim()中删除。

© www.soinside.com 2019 - 2024. All rights reserved.