我的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?
编辑:我创建了this plunker来演示问题。
问候,马库斯
答案 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)
答案 2 :(得分:-3)
通过使用角度装饰器并覆盖$ urlRouter&#39; href&#39;的行为来解决它。功能