1

検索のページネーションに問題があります。ページネーションは正常に機能していますが、検索ボックスを使用して文字を入力すると、結果が異なります。結果が異なるため、ページネーションは不規則に動作します。

PaginationModule から使っています'ng2-bootstrap'

usersページネーション付きのリストを取得しています..これが私のものですusers.component.ts

export class UserListComponent implements OnInit {
     users: IUser[];
     term : string = '';

     public itemsPerPage: number = 1;
     public totalItems: number = 0;
     public currentPage: number = 1;

  ngOnInit() {
    this.getUsers();
  }

  getUsers(){
    this.dataService.getUsers(this.currentPage, this.itemsPerPage)
        .subscribe((users: PaginatedResult<IUser[]>) => {
                this.users = users;
            this.totalItems = users['pagination']['TotalItems'];       
        });
    }

  pageChanged(event: any, term: string): void {
      this.currentPage = event.page;
       if(term != '')
          this.search(term);
       else
        this.getUsers();
  }

  search(term) {
    this.dataService.searchUserList(term, this.currentPage, this.itemsPerPage)
        .subscribe((items : PaginatedResult<IUser[]>) => {
            this.totalItems = items['pagination']['TotalItems'];
            this.users = items;
      });
   }
}

これはusers.component.html

     //Search input box
 <input #term (keyup)="search(term.value)" value="" class="form-control" placeholder="Search" autofocus>
     //pagination
 <pagination [boundaryLinks]="true" [totalItems]="totalItems" [itemsPerPage]="itemsPerPage" [(ngModel)]="currentPage" class="pagination-sm"
                previousText="&lsaquo;" nextText="&rsaquo;" firstText="&laquo;" lastText="&raquo;" (pageChanged)="pageChanged($event, term.value)"></pagination>

問題は、私がpage:3何かを検索しているときです..そして、得られた結果には、検索後に1ページしかないため、このエラーが発生しました

ORIGINAL EXCEPTION: Expression has changed after it was checked. Previous value: '3'. Current value: '1'.

これは、私がpage:3検索結果に出た後1 page、ページネーションが不規則に動作する理由だけを持っているためだとわかっています。

これに対する解決策はありますか?

4

0 に答える 0