href 中的点符号替换整个 URL 路径

Dot notation in href replacing entire URL path

我正在开发一个 AngularJS Web 应用程序,我需要在其中使用模板中的 href 来启动子状态。说来话长,但 href 是我目前唯一的选择(不是 $state.go() 或 ui-sref 指令等替代方案)。

基本上,我正在尝试启动一个路由到我当前状态(父级)的子状态(模态 window)。 current URL 可以点击 link 的例子是

localhost:3000/#/contact/aboutus

不过,这不是整个应用程序中唯一可能的父子状态,因此我需要路径的初始部分保持动态。假设我正在尝试从此页面启动一个 "directory" 模态 window,它对应于以下 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 路径。但是,当我单击页面上的 link 时,它会将我定向到 URL:

localhost:3000/directory

整个路径被替换,这个URL是一个404。为什么会这样?问题是否在于 ui 路由是如何发生的,还是我完全遗漏了什么?

您的解释没有考虑到您使用的是基于哈希的路由

./directory 不会附加到 url 哈希,并且其中没有哈希

手动编写 href 时,它必须是:

<a href="#/contact/aboutus/directory">

没有shorthand这个