Поиск по всей таблице по трубе angular - PullRequest
0 голосов
/ 03 февраля 2020

Как найти значение из всей таблицы, которая разбита на страницы. В настоящее время я получаю значение поиска со страницы 1 только в том случае, если оно выбрано и аналогично. Что мне нужно, это искать значение во всей таблице, какая бы страница не была выбрана.

Вот мой код

<input [(ngModel)]="searchText" placeholder="Search..">
 <table  class="table table-striped table-hover" [mfData]="pendingReports" #mf="mfDataTable" [mfRowsOnPage]="10" >
 <thead>
 <tr>
 </tr>
 </thead>
 <tbody>
 <tr *ngFor="let data of mf.data | grdFilter: { ireportid: searchText,Property:searchText}">
 </tr>
 </tbody>
 <mfBootstrapPaginator [rowsOnPageSet]="[5,10,25]"></mfBootstrapPaginator>

Фильтр трубы:

export class GrdFilterPipe implements PipeTransform {

  transform(items: any, filter: any, defaultFilter: boolean): any {
    if (!filter){
      return items;
    }

    if (!Array.isArray(items)){
      return items;
    }

    if (filter && Array.isArray(items)) {
      let filterKeys = Object.keys(filter);

      if (defaultFilter) {
        return items.filter(item =>
            filterKeys.reduce((x, keyName) =>
                (x && new RegExp(filter[keyName], 'gi').test(item[keyName])) || filter[keyName] == "", true));
      }
      else {
        return items.filter(item => {
          return filterKeys.some((keyName) => {
            return new RegExp(filter[keyName], 'gi').test(item[keyName]) || filter[keyName] == "";
          });
        });
      }
    }
  }
}

1 Ответ

2 голосов
/ 03 февраля 2020

То, что вы пытаетесь сделать, скорее всего, не будет возможным, потому что если вы используете нумерацию страниц, это означает, что ваш пользовательский интерфейс содержит только часть данных, которые вы пытаетесь отфильтровать. И поэтому может предоставить вам только частичный результат.

Вам потребуется реализовать функцию фильтрации на вашем сервере для достижения того, чего вы хотите, потому что ваш сервер имеет «глобальное» представление о данные.

...