【问题标题】:Configure angular ui-router to use absolute URLs by default将 Angular ui-router 配置为默认使用绝对 URL
【发布时间】:2015-11-04 23:19:46
【问题描述】:

我的带有 ui-router 的 Angular 应用程序在 /content/page.html 的页面内运行。该页面还有一个

<base href="/somewhere"> 

标签在头部。

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

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

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

问候,马库斯

【问题讨论】:

    标签: angularjs angular-ui-router


    【解决方案1】:

    通过使用角度装饰器并覆盖 $urlRouter 'href' 函数的行为来解决它。

    【讨论】:

    • @Markus 请提供一个例子。
    【解决方案2】:

    我希望这个答案比我以前的答案更能帮助你^^。我测试了你的 plunker,现在默认路由有效。我希望这是您搜索的内容

    new plunker

    Keep me informed.
    

    【讨论】:

    • 感谢您的帮助!这个 plunker 中的链接仍然指向 run.plnkr.co/somewher/route2。用 Chrome 测试。
    • 是的,我更改了路由以验证重定向是否有效。那么,您的问题解决了吗?
    • 为什么链接错误?您的路线包含某处,但无论如何您都可以重定向到 /content/page.html 中的页面 html,否则我真的不明白您的问题。在这种情况下,您能否更清楚地解释您的问题。
    • 链接指向run.plnkr.co/somewher/route1。这是错误的。应该是run.plnkr.co/route1
    • 以及为什么不能为 更改 。因为,我试过了,当href等于“/”时链接很好(run.plnkr.co/route1
    【解决方案3】:

    您可以尝试将&lt;base href="/somewhere"&gt; 替换为&lt;base href="/"&gt; 并在app.js 中的配置路由中添加带有您的url 的链接。

    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'})
    

    希望对你有所帮助。

    【讨论】:

    • 谢谢。用户似乎不可能右键单击链接并在新选项卡中打开它,不是吗? Angular 应用程序和 ui-router 在“/somewhere”处不可用。我还没试过。
    • 您好,您是否在索引中添加了依赖项以在您的 app.js 中使用 ui 路由器?右键是强制的吗?对我来说,我使用 Modal bootstrap 在新窗口中打开我的视图。但我不知道这是否符合你的期望。
    • 您的应用程序使用什么技术?
    • 要打开一个新标签,请查看此链接:stackoverflow.com/questions/21519113/…。我认为您可以使用 bootstrop 来查看弹出菜单。
    • 我只是想确保该网站具有正常的网站行为。这意味着可以在新选项卡中打开链接并添加书签。我创建了一个 plunker 来演示这个问题(见上文)。我不认为你提到的解决方案可以解决这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    相关资源
    最近更新 更多