4

我将 ngx-pagination 与服务器端分页一起使用。因此,用户输入一些搜索条件并点击搜索按钮。这导致调用服务器以获取结果的第一页。在客户端,我有这段代码来显示分页控件

<div class="col-sm-4">
  <pagination-controls (pageChange)="getPage($event)" 
                       id="serverPaging">
  </pagination-controls>
</div>

<div *ngFor="let result of results | paginate: { 
  id:'serverPaging', 
  itemsPerPage: 10, 
  currentPage: p, 
  totalItems: totalResultCount }">
  ...
</div>

这按预期工作。显示第一页,并突出显示分页栏中的“1”。

可以说,用户现在点击最后一页。这将突出显示分页栏中的最后一页。到目前为止,一切都按预期工作。

现在用户通过再次单击“搜索”按钮重新执行搜索。这将重新呈现搜索结果。由于是新搜索,服务器返回第一页。但是,分页栏仍然突出显示最后一页。

如何将分页栏重置为某些操作的第一页,例如重新执行搜索。

Angular 版本:4.2.4 ngx 分页版本:3.0.0

4

1 回答 1

7

如果将currentPage属性与.ts文件中的变量绑定,则可以强制更新。
例如:

组件.ts

export class DemoComponent implements OnInit {

  public p: number; //Declare the variable that you're using in currentPage

  //Constructor and OnInit...

  onSearch(word: string): void {
    this.SearchService.search(word).subscribe((data: Array<any>) => {
        this.data = data;
        this.p = 1;
    });
  }
}

HTML

<pagination-controls (pageChange)="p = $event"></pagination-controls>

<div *ngFor="let d of data | paginate: { 
  itemsPerPage: 10, 
  currentPage: p, 
  totalItems: total }"></div>
于 2017-08-13T19:24:53.343 回答