Фильтр на основе множественного выпадающего списка в мат-таблице - PullRequest
0 голосов
/ 25 января 2019

Основано на этом сообщении: Как я могу отфильтровать результаты по нескольким выборкам из выпадающего списка?

, что если два выбранных значения взяты из столбцов, которые не расположены рядом друг с другом?

Например, если два раскрывающихся списка - это «имя» и «символ»?

Принимает ли dataSource.filter подстановочный знак в качестве ввода? Как 'Водород * H'

Если нет, как мы можем реализовать эту функцию, чтобы она могла выполнять оператор AND?

1 Ответ

0 голосов
/ 25 января 2019

просто используйте функцию типа

  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

...