我正在开发一个 AngularJS Web 应用程序,我需要在模板中使用 href 来启动子状态。长话短说,但 href 是我目前唯一的选择(不是 $state.go() 或 ui-sref 指令等替代品)。
基本上,我正在尝试启动一个路由到当前状态(父级)的子状态(模式窗口)。可以单击链接的当前 URL 示例为
localhost:3000/#/contact/aboutus
但这并不是整个应用程序中唯一可能的父子状态,因此我需要路径的初始部分保持动态。假设我正在尝试从此页面启动一个“目录”模式窗口,它对应于以下 URL:
localhost:3000/#/contact/aboutus/directory
我希望通过我拥有的以下代码可以做到这一点:
<div class="internal-margin">
<a href="./directory">
<span ng-bind-html="'{{link.label | translate}}'"></span>
</a>
</div>
注意 href="./directory"。我正在尝试使用此点符号来附加到现有的 URL 路径。但是,当我单击页面上的链接时,它会将我定向到 URL:
localhost:3000/directory
整个路径被替换,这个 URL 是 404。为什么会发生这种情况?问题是否更深层次地存在于 ui 路由的发生方式中,或者我完全错过了一些东西?
最佳答案
您的解释没有考虑到您正在使用基于哈希的路由
./directory
不会附加到 url 哈希,并且其中没有哈希
手动编写 href 时,它必须是:
<a href="#/contact/aboutus/directory">
没有简写形式
关于javascript - href 中的点符号替换整个 URL 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39945543/