在角度路由中处理 %23 替换 id #。

问题描述 投票:0回答:1

问题:

我有一个快速后端/angularjs 前端网络应用程序,为我们的用户托管我所有团队的文档。我们经常需要在 Slack 中向我们的用户发布特定问题的链接(全部链接为 ID)。前任。

helpapp.com/productTheyNeedHelpWith#QuestionLinkedTo
问题是当从 slack 中单击链接时,而不是在复制/粘贴时,Slack 会启动一个新的浏览器窗口/选项卡到
helpapp.com/productTheyNeedHelpWith%23QuestionLinkedTo

这会破坏 ngRoute,因为它不再将

/productTheyNeedHelpWith
识别为加载正确页面的路径,而是将用户发送到我们的主页。

对可能解决方案的思考:

我想在 ngRouting 本身解决这个问题,方法是在 $routeProvider 发挥作用之前用

%23
替换
#
以某种方式更新路径,或者通过某种方式捕获 app.js 中的完整 url 并更新它或在我们完全呈现页面视图之前重定向到更新版本。

目前我已经通过使用 ng-init 事件检查 url 设置了一个解决方法,如果找到

%23
,更新它并用正确的扩展名替换它,但这会导致奇怪的双重加载,导致用户不佳经验。

最后的想法:

由于我不确定解决此问题的最佳方法,并且因为我们的代码是专有的,所以我避免发布许多可能不相关但很乐意提供其中任何部分的“示例代码” , 美妙的 stackoverflowers, 可以请求。预先感谢您的协助。

angularjs express routes ngroute route-provider
1个回答
0
投票

对你来说绝对太晚了,但对于任何绊倒这个链接的人来说......我的情况略有不同,我需要从页脚跳转到我当前页面上的一个 id。但是每次当前页面的url都不一样。

对我有用的只是使用

href={{routeUrl}}
而不是
routerLink
。在我的例子中,
routeUrl
是当前路线 +“#nav”。对于
href
,这并没有将其编码为 %23,但它使用了
routerLink
。我们正在使用 Angular 14.

© www.soinside.com 2019 - 2024. All rights reserved.