Угловой 4 фильтрующий канал, используемый с разбивкой на страницы

Я использую фильтр с разбивкой на страницы. Он работает нормально, но проблема в том, что когда я ищу по имени, он фильтрует результат, но разбиение на страницы остается таким же, как если бы результат поиска возвращал 3 фильтра, кадры разбивки на страницы отображают страницы, и пользователь может перемещаться по этим страницам. Я хочу изменить свой номер страницы с помощью поискового фильтра. Вот мой пример кода

    <input type = "text" placeholder = "User Name" name = "username" [(ngModel)] = "_userListParams.UserName" class = "form-control">

<pagination-controls (pageChange) = "pageChanged($event)" (pageChange) = "Paging.currentPage = $event"></pagination-controls>

      <table class = "table table-hover">
                            <thead>
                                <tr>
                                    <th *ngFor = "let cell of tableData2.headerRow">{{ cell }}</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr [routerLink] = "['/UserDetails', row.Id]" *ngFor = "let row of tableData2.dataRows | filter: 'Name':  _userListParams.UserName | paginate: { itemsPerPage: Paging.pageSize, currentPage: Paging.currentPage,totalItems: Paging.totalCount} ;let i = index;">
                                    <td>{{i+1}}</td>
                                    <td>{{row.Name}}</td>
                                    <td>{{row.TypeName}}</td>
                                    <td>{{row.Country}}</td>
                                    <td>{{row.Status}}</td>
                                    <td>{{row.ItemsQty}}</td>
                                    <td><img class = "panel-profile-img" height = "70" width = "70" src = "{{imgurl+row.ProfilePic}}" alt = ""></td>
                                </tr>
                                <tr *ngIf = "tableData2.dataRows.length == 0">
                                    <td colspan = "7" class = "text-center text-danger">No Record Found!</td>
                                </tr>
                            </tbody>
                        </table>

Вот моя трубка, которую я использую

@Pipe({ name: "filter" })
export class FilterPipe implements PipeTransform {
    transform(items: any[],field: string, searchText: string): any[] {
      if (!items) return [];
      if (!searchText) return items;
      searchText = searchText.toLowerCase();
       return items.filter( it => {
           debugger;
        return it[field].toLowerCase().includes(searchText);
      });
     }
  }

Прикрепленное изображение

Угловой 4 фильтрующий канал, используемый с разбивкой на страницы

вы используете несколько каналов, я думаю, что канал "paginate" более интересен для вашего вопроса

enno.void 03.01.2019 14:08

да, мне нужно использовать несколько труб, чтобы достичь своей цели.

Shamshad Jamal 03.01.2019 14:13

Вам действительно следует избегать использования труба для фильтрации, вместо этого просто фильтруйте компонент с помощью методов массива или RxJS.

Alexander Staroselsky 03.01.2019 14:45
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
3
1 311
1

Ответы 1

Попробуйте установить опцию autoHide в элементе <pagination-controls>, чтобы он исчезал, если все результаты умещаются на странице 1.

Документация связана с соответствующим разделом: https://www.npmjs.com/package/ngx-pagination#api

Отредактировано, чтобы удалить мое предложение удалить опцию totalItems. Пропустили ту часть заголовка, где вы сказали «разбивка на страницы». Facepalm.

Другие вопросы по теме