所以我開始使用Angular2,並試圖通過ng2-pagination組件添加分頁,經過大量的試驗和錯誤,我已經達到了我的數據正確顯示的階段,分頁控件顯示正確,但頁面更改沒有被解僱,所以我總是停留在第一頁。ng2-pagination not firing page change
這裏是我的html
<div id="item_box" *ngFor="let item of listItems | paginate:
{itemsPerPage: 3, currentPage: page};">
<! -- Elements to display my data items, all works OK -->
</div>
<div id="pager" class="pagination">
<pagination-template #p="paginationApi" (pageChange)="pageChange.emit($event)">
<ul>
<li [class.disabled]="p.isFirstPage()">
<a (click)="p.setCurrent(1)">First</a>
</li>
<li [class.disabled]="p.isFirstPage()">
<a (click)="p.previous()">Previous</a>
</li>
<li *ngFor="let page of p.pages" [class.current]="p.getCurrent() === page.value">
<a (click)="p.setCurrent(page.value)">{{page.value}}</a>
</li>
<li [class.disabled]="p.isLastPage()">
<a (click)="p.next()">Next</a>
</li>
<li [class.disabled]="p.isLastPage()">
<a (click)="p.getLastPage()">Last</a>
</li>
</ul>
</pagination-template>
</div>
視覺一切都看起來不錯。
任我list.component代碼
import { Component, OnInit, OnDestroy, Input, Output, EventEmitter } from '@angular/core';
import { Subscription } from 'rxjs';
import { Router, ActivatedRoute, Params } from "@angular/router";
import { PaginationModule } from 'ng2-bootstrap/components/pagination';
@Component({
selector: 'app-list',
templateUrl: './list.component.html',
styleUrls: ['./list.component.css']
})
export class ListComponent implements OnInit, OnDestroy {
listItems = [];
private subscription: Subscription;
@Input() id: string;
@Input() page;
@Input() maxSize: number;
@Output() pageChange: EventEmitter<number> = new EventEmitter<number>();
constructor(private apiService:ApiService, private router:Router, private activatedRoute: ActivatedRoute)
{
}
ngOnInit()
{
//Code removed for brevity, but here I execute WS and get data here, populated in this.listItems
this.listItems == result;
...
}
ngOnDestroy() {
this.subscription.unsubscribe();
}
}
我沒有得到任何錯誤。但是當我點擊更改頁面時,什麼也沒有發生。
我敢肯定,它一定是簡單的東西,我已經錯過了某個地方,但什麼,在哪裏?
https://github.com/michaelbromley/ng2-pagination上的示例/代碼沒有幫助,我找到的任何其他示例也無濟於事。
任何想法?我做錯了什麼?
嗨。我是lib作者。問題:在PaginatePipe中設置'currentPage:page' - 我的代碼中沒有看到「page」var。它是否作爲輸入傳入?目前,您的代碼似乎只是重新發出pageChange事件,但我看不到任何會改變「page」值的任何部分 - 爲了使分頁正常工作,必須進行這一操作。 –
嗨邁克爾,是的,我在我的課上,但錯過了上面的代碼(複製過去的問題)。但是這指出了我正確的方向,並且我已經解決了這個問題。看到我下面發佈的答案 –