首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scrollPositionRestoration在spartacus-storefront不起作用

scrollPositionRestoration在spartacus-storefront不起作用
EN

Stack Overflow用户
提问于 2021-04-29 16:57:49
回答 2查看 142关注 0票数 0

我的要求是,在路由更改时,用户应该始终导航到页面的顶部。因此,我尝试按照3.2.0中的新应用程序结构在AppRoutingModule中应用scrollPositionRestoration: 'top'配置,但它不起作用。

我也尝试过scrollOffset: [0, 0],property。但这也行不通。

我也试过按照Spartacus documentation做下面的操作,但也不起作用。

代码语言:javascript
复制
providers: [
  {
    provide: ROUTER_CONFIGURATION,
    useValue: {
      scrollPositionRestoration: 'top',
    },
  },
];

有人能帮我解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2021-10-08 18:08:33

从3.2.x开始,由于新的应用程序结构,Spartacus不提供来自angular/router的RouterModule机制。除非您选择在默认情况下在app.module中导入AppRoutingModule的外壳应用程序上创建带有schematics的Spartacus,否则您将能够使用您提供的代码片段。由于它不工作,我假设,您没有创建AppRoutingModule并将其导入到您的AppModule中,因此没有angular的路由器滚动机制。从您在3.0中提供的文档来看,并没有说您需要创建自己的AppRoutingModule,在4.0 docs发布时,我们的文档中已经正确更新了该文档

对于4.2.0,我们发布了一个自定义的滚动位置恢复机制,在这个机制中,您可以控制忽略路由和查询字符串,使其不会返回页面顶部。由于Spartacus异步加载其数据,因此您将拥有一个功能滚动定位,而它不能与开箱即用路由器的滚动位置恢复一起工作。

您可以从@spartacus/storefront导入AppRoutingModule,而不是创建自己的AppRoutingModule。它的文档将在4.2发布后发布。

票数 1
EN

Stack Overflow用户

发布于 2021-04-29 23:58:48

您尝试过在app-routing.module.ts中添加scrollPositionRestoration: 'top'

这是app-routing.module.ts的开箱即用的Spartacus(3.2.1)示例

代码语言:javascript
复制
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';

@NgModule({
  declarations: [],
  imports: [
    RouterModule.forRoot([], {
      anchorScrolling: 'enabled',
      relativeLinkResolution: 'corrected',
      initialNavigation: 'enabled',
      scrollPositionRestoration: 'top',
    }),
  ],
})
export class AppRoutingModule {}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67314140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档