1

当 URL 中存在相应的哈希时,我的 Angular 应用程序必须自动滚动(仅 Y 轴)到某个组件。

例如url.com/page1#element1,应该使浏览器自动滚动到元素 1,自然地#element1在 HTML 标记内。

但不知何故,我的 Angular 应用程序自动将哈希 (#) 替换为 %23,它的 URL 编码版本。这导致我的应用程序无法识别 URL 中的任何片段(我this.activatedRoute.fragment.subscribe()用来获取片段值)的问题我尝试在代码中的任何地方进行检查,但我似乎无法找到问题的根源。有人对此有任何可能的解决方案吗?谢谢!

4

1 回答 1

0

不是真正的修复,但我认为这是我的应用程序特有的问题。所以我的应用程序基本上有两种模式,一种是普通ng serve模式,另一种是 SSR 模式(服务器端渲染)。基本上这个问题只出现在正常模式下,但如果我以 SSR 模式运行应用程序(也是我在 prod 中所拥有的),则哈希将保持原样。

于 2021-01-27T22:34:01.453 回答