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这个
我正在开发一个 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这个