配置角度ui-router默认使用绝对URL

时间:2015-08-12 11:18:43

标签: angularjs angular-ui-router

我的ui-router角度应用正在/content/page.html的页面内运行。该页面还有一个

<base href="/somewhere"> 
头上的

标签。

由于基本标记,我最终指向/somewhere#/section1而不是/content/page.html#/section1的错误网址

我无法删除此基本标记,因为我只是大型网站的一小部分。有没有办法让ui-router默认生成绝对URL?我注意到ui-sref-opts="{absolute: true}"可以执行此操作,但它使用基本标记生成链接。有没有办法让ui-router始终使用window.location.pathname?

创建绝对URL

编辑:我创建了this plunker来演示问题。

问候,马库斯

3 个答案:

答案 0 :(得分:0)

您可以尝试将<base href="/somewhere">替换为<base href="/">,并在app.js的配置路径中添加指向您网址的链接。

HTML:

<base href='/'>
<a ui-sref="nameOfTheRoute">Link</a>
app.js中的

添加路线:

$stateProvider.state('nameOfTheRoute',{url:'/', templateUrl:'Content/page.html'})

PS:我在我的应用程序中使用另一个基本href尝试了这个并且它可以正常工作,因此您可以尝试不使用更改基本URL标记。

HTML:

<base href='/somewhere'>
<a ui-sref="nameOfTheRoute">Link</a>
app.js中的

添加路线:

$stateProvider.state('nameOfTheRoute',{url:'/somewhere', templateUrl:'Content/page.html'})

我希望这会对你有所帮助。

答案 1 :(得分:0)

我希望这个答案对你的帮助超过我以前的答案^^。我测试了你的plunker,现在默认路线工作。我希望这是你搜索的内容

new plunker

Keep me informed.

答案 2 :(得分:-3)

通过使用角度装饰器并覆盖$ urlRouter&#39; href&#39;的行为来解决它。功能