我在左侧的一列中有一个带有分页数据的页面,在右侧有一个地图(例如Airbnb)当我单击列底部的下一页时,我获取返回项目列表的页面数据(例如。成员),但我的可滚动列,它是一个引导列,不会滚动到顶部,它停留在底部,只是更新数据项的新列表。
仅供参考 - 我在我的应用程序路由文件中使用了这样的滚动位置恢复,但它不会在页面中的列内滚动可滚动的分页列表。
RouterModule.forRoot(routes, {scrollPositionRestoration: 'enabled'})
分页列表没有滚动到顶部的页面包含在它自己的模块(例如 members.module.ts)和它自己的路由文件(例如 members-routing.module.tx)中,并且它正在像延迟加载一样这个。
在 app-routing.ts
{
path: 'members',
canActivate: [AuthGuard],
loadChildren: () => import('./members/members.module')
.then(mod => mod.MembersModule)
},
在 member-routing.module.ts 文件中我有这个
const routes: Routes = [{
path: '',
component: MembersComponent
},
{
path: ':id',
component: MemberDetailsComponent,
resolve: {
user: MemberDetailResolver
},
data: {
breadcrumb: {
alias: 'memberDetails'
}
}
},
];
@NgModule({
declarations: [],
imports: [
CommonModule,
RouterModule.forChild(routes)
],
exports: [RouterModule]
})
export class MembersRoutingModule {}
问题- 我是否需要使用“scrollPositionRestoration”进行其他类型的导入或导出才能使其正常工作,或者这对可滚动列数据不起作用?
我当前的解决方案是在 .ts 文件中获取 elementRef,然后在获取数据后,滚动到顶部。但这似乎不是一个好的 Angular 9+ 解决方案?
前任。
// above in the .ts file get col that contains the paginated data
@ViewChild('scrollableContentCol', {
static: true
}) scrollableContentCol: ElementRef;
// gets the member data
this.membersService.getMembers()
.subscribe(response => {
this.totalCount = response.count;
this.scrollableContentCol.nativeElement.scrollTo(0, 0); // scroll the col with paginated data back to top
this.members = response.data as IUser[];
// do other stuff
});