我有一个快速后端/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, 可以请求。预先感谢您的协助。
对你来说绝对太晚了,但对于任何绊倒这个链接的人来说......我的情况略有不同,我需要从页脚跳转到我当前页面上的一个 id。但是每次当前页面的url都不一样。
对我有用的只是使用
href={{routeUrl}}
而不是routerLink
。在我的例子中,routeUrl
是当前路线 +“#nav”。对于 href
,这并没有将其编码为 %23,但它使用了 routerLink
。我们正在使用 Angular 14.