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

时间:2018-08-30 09:27:56

标签: angular angular-material angular-datatables

我正在尝试在Angular Material Data Table中使用过滤器-

如果我搜索“ MATCHED ”,则“ MATCHED ”和“ UNMATCHED ”都出现在数据的状态栏中桌子。

我知道这是因为减少了数据对象并将其连接起来,并且应用了过滤器( from the Angular Material Docs )。

如果要搜索匹配项,我只想显示“ MATCHED ”状态。 因此,我正在寻找一种过滤器,该过滤器将进行精确的单词过滤,而不是子字符串。 如何进行?

我读了post,但无法继续。

1 个答案:

答案 0 :(得分: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()中删除。