在你的 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 將會在數據更新後重新渲染頁面,而不需要再次點擊頁面的其他地方。