根据mat-table中的多个下拉选择进行过滤

时间:2019-01-25 06:26:09

标签: angular typescript mat-table

根据此帖子:How can I filter results based on multiple selections from dropdown?

,如果两个选择的值来自彼此不相邻的列怎么办?

例如,如果两个下拉列表是“ name”和“ symbol”?

dataSource.filter是否将通配符作为输入?像“氢* H”

如果没有,我们如何实现此功能以便执行AND运算符?

1 个答案:

答案 0 :(得分:0)

只需使用类似的功能

  customFiltered() {
    return (data, filter) => {
      if (this.name && this.symbol)
        return data.name == this.name && data.symbol == this.symbol
      if (this.name)
        return data.name == this.name
      if (this.symbol)
        return data.symbol == this.symbol
      return true
    }
  }

那么您只需要

this.dataSource.filterPredicate =this.customFiltered();

其中变量this.name和this.symbol是您选择的[[ngModel)]

您可以在stackblitz

中看到