AngularJS中的相对链接

时间:2013-05-03 23:31:29

标签: angularjs

在我的模板中,我想使用相对路线。目前我的锚href中有绝对路径,这是次优的

<a href="/#/dashboard/settings">Settings</a>

如何将其重写为相对导航(相对于dashboard)?

它应该与hashbang和html5历史api路由一起使用(无论AngularJS使用还是后退)

4 个答案:

答案 0 :(得分:3)

在您的控制器中,您可以查看$routeParams并构建一个 base 网址来进行操作。

从那里,您的模板可以针对"{{baseUrl}}/relative/to/scope/baseUrl"

运行

在您的代码中构建的网址可以转到$scope.baseUrl + /relative/to/scope/baseUrl";

它并不完全是“相对的”,但它确实解决了允许网址改进其他网址而不必对层次结构进行硬编码并担心变量等路线选择的问题。

答案 1 :(得分:2)

我认为你不能重写它来使用相对导航。如果您要链接到/user/profile,但您的用户位于/dashboard/settings,相对如何运作?如果主导航只链接到profile(相对),那么它将转到/dashboard/profile,我假设这不是你想要的。

为什么相对路径在您的应用程序中如此重要?除了储蓄按键还有什么?

答案 2 :(得分:1)

老问题,但我发现这有效:

{{1}}

答案 3 :(得分:0)

我不确定您的角度版本,但在我的1.2.18中,当您设置

<base href="/base"></base>

每当你的元素href中,你以&#34; relative / to / you / url&#34;开头,那么你的链接将指向&#34; / base / relative / to / you / url&#34 ;:

<a href="relative/to/you/url"></a>

注意:我为$ locationProvider打开了html5 api模式:

$locationProvider.html5Mode(true);

编辑:请参阅MDN文档了解<base>标记。 https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base