Angular 2+ (v11) 自动将 URL 中的片段哈希 (#) 编码为 %23

Angular 2+ (v11) automatically encode fragment hash (#) in URL into %23

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

例如url.com/page1#element1 应该使浏览器自动滚动到元素 1,当然 HTML 标签内有 #element1

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

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