在你的 TypeScript 程式碼中,當呼叫 nextPage_TopSelling()
或 prevPage_TopSelling()
方法時,雖然你更新了 currentPage_TopSelling
的值並呼叫了 reloadTopSelling()
方法,但是 Angular 並不會自動檢測到這些變化並重新渲染頁面。這是因為 Angular 的變化檢測機制是基於非同步的,在一些情況下需要手動觸發變化檢測。
為了解決這個問題,你可以注入 ChangeDetectorRef
服務並手動觸發變化檢測。首先,將 ChangeDetectorRef
匯入到你的元件中:
typescript
import { ChangeDetectorRef } from '@angular/core';
然後在元件的建構函式中注入 ChangeDetectorRef
:
typescript
constructor(
private cdr: ChangeDetectorRef) { }
最後,在
reloadTopSelling()
方法中的訂閱回撥函式末尾呼叫 detectChanges()
方法來手動觸發變化檢測:typescript
reloadTopSelling() {
// 其他程式碼...
this.partsService.getList(undefined, stateId, undefined, this.currentPage_TopSelling, this.itemsPerPage_TopSelling).subscribe((res: PartsDto_WebSitePagedResultDto) => {
// 其他程式碼...
// 呼叫變化檢測
this.cdr.detectChanges();
});
}
透過這種方式,當你呼叫 nextPage_TopSelling()
或 prevPage_TopSelling()
方法時,Angular 將會在資料更新後重新渲染頁面,而不需要再次點選頁面的其他地方。