我明明加了loadType这个变量来约束为什么this.loadAuditedPage (pageNumber, true);方法的结果还是会把 this.loadCreatedPage (pageNumber, true);结果覆盖 protected handleNavigation(): void { combineLatest([this.activatedRoute.data, this.activatedRoute.queryParamMap]).subscribe(([data, params]) => { const page = params.get('page');//获取当前页面的页码 const pageNumber = +(page ?? 1);//将页码转换为数字类型,并赋值给 pageNumber 变量。如果页码为空,则默认为 1 if (pageNumber !== this.page ) { this.loadCreatedPage (pageNumber, true); this.loadAuditedPage (pageNumber, true); } }); } protected onSuccess(data: IApprovalRecord[] | null, headers: HttpHeaders, page: number, navigate: boolean,loadType: number): void { this.totalRecords = Number(headers.get('X-Total-Count')); this.page = page; if (navigate) { this.router.navigate(['/approval-record/my'], { queryParams: { page: this.page, size: this.recordsPerPage, }, }); } if(loadType === 0){ this.createdApprovalRecords = data ?? []; } if(loadType === 1){ this.auditedApprovalRecords = data ?? []; } this.ngbPaginationPage = this.page; }
时间: 2024-01-01 15:06:54 浏览: 106
根据你提供的代码,我可以看到在 `handleNavigation` 方法中,如果 `pageNumber` 不等于当前页面的页码 `this.page`,那么就会调用 `loadCreatedPage` 和 `loadAuditedPage` 方法。但是在 `onSuccess` 方法中,它并没有判断 `loadType` 是否为 0 或 1,而是使用了两个独立的条件语句。这意味着无论 `loadType` 的值是什么,都会同时加载 `createdApprovalRecords` 和 `auditedApprovalRecords` 的数据。
如果你想要避免这种情况,可以将 `onSuccess` 方法中的条件语句改为一个 `switch` 语句,根据 `loadType` 的值来分别处理不同的情况。例如:
```
protected onSuccess(data: IApprovalRecord[] | null, headers: HttpHeaders, page: number, navigate: boolean, loadType: number): void {
this.totalRecords = Number(headers.get('X-Total-Count'));
this.page = page;
if (navigate) {
this.router.navigate(['/approval-record/my'], {
queryParams: {
page: this.page,
size: this.recordsPerPage,
},
});
}
switch (loadType) {
case 0:
this.createdApprovalRecords = data ?? [];
break;
case 1:
this.auditedApprovalRecords = data ?? [];
break;
default:
break;
}
this.ngbPaginationPage = this.page;
}
```
这样就可以确保只有符合条件的数据会被加载。同时,也建议在 `handleNavigation` 方法中添加一些日志输出,来检查 `pageNumber` 和 `this.page` 的值是否正确。
阅读全文