Как отфильтровать одно значение, но показать все остальное, используя Angular 5 и Angular Material - PullRequest
0 голосов
/ 08 июня 2018

Я пробовал это: Angular + Material - Как обновить источник данных (mat-table) , и на самом деле это работает слишком хорошо!

Я хочу отфильтровать OUTзначение и показать все остальные, но это происходит в обратном порядке.

applyFilter("INACTIVE"); <-- This only "SHOWS", of course, all INACTIVE records, but I want the opposite.


applyFilter(filterValue: string) {
  filterValue = filterValue.trim();
  //filterValue = filterValue.toLowerCase();
  this.applicationList.filter = filterValue;
}

refresh() {
  this.changeDetectorRefs.detectChanges();
}

Значения, которые я хочу показать: IN_PROGRESS, ACTIVE, NEW, и единственное значение, которое я не хочу отображать, это: INACTIVE.

Когда я вызываю эту функцию applyFilter (), я использую аргумент: «НЕАКТИВНО», но результатом являются «ТОЛЬКО НЕАКТИВНЫЕ» записи ... но я хочу наоборот: НЕ ПОКАЗАТЬ НЕАКТИВНО, а все остальное.

Спасибо

1 Ответ

0 голосов
/ 09 июня 2018

Просто сделайте обратное в вашей функции.

Поскольку, когда вы используете функцию фильтра, она возвращает отфильтрованные объекты .. например,

, давайте предположим, что у вас есть массив таких объектов, как этот

массив = [{id: 1, имя: 'name1', адрес: 'usa'}, {id: 2, имя: 'name2', адрес: 'canada'}, {id: 3,name: 'name3', address: 'australia'}];

чтобы получить все, кроме пользователя с id 2, вы можете сделать что-то вроде этого

array = array.filter (x => x.name! == 'name2');

Это вернет вам массив без name2.

Надеюсь, это то, что вы искали

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...