【问题标题】:Routes in the address bar地址栏中的路由
【发布时间】:2015-09-19 05:20:08
【问题描述】:

我正在使用 $routeProvider 来配置我的路线:

.when('/Caseload', {
    controller: 'CaseloadController',
    templateUrl: '/template/caseload/caseload.tmpl.html',
    resolve: {
        caseload: ['CaseloadService', function(CaseloadService){
            return CaseloadService.getCaseload();
        }]
    }
})

我的链接是这样的:

<div class="tab"><a href="/Caseload">Caseload</a></div>

当我导航到http://localhost:1234 然后单击链接时,地址栏中的 url 现在看起来像http://localhost:1234/Caseload

编辑 为了澄清我在问什么,如果您查看 ng-view 文档,他们有一个书籍示例,您可以在其中单击一本书的链接,并且视图会使用有关位置的信息进行更新。

当您单击其中一个链接时,浏览器的地址栏不会改变。

在我点击链接之前,地址栏会显示:

https://docs.angularjs.org/api/ngRoute/directive/ngView

点击其中一个图书链接后,它仍然显示:

https://docs.angularjs.org/api/ngRoute/directive/ngView 在地址栏中。

当我点击页面中的链接时,地址栏会发生变化;它会将地址更新为我的路线。

所以在我点击指向 /Caseload 的链接之前,我的地址栏会显示:

http://localhost:1234

点击链接后显示:

http://localhost:1234/Caseload

这不是一个有效的 url,而是我的应用程序中的一个路由。我需要做什么才能让 $routeProvider 不将我的路线放在地址栏中?

【问题讨论】:

  • 阅读本文以了解路由 URL 的所有细微差别:docs.angularjs.org/guide/$location#hashbang-and-html5-modes
  • 我使用的是html5模式。
  • 我认为您没有理解我的要求。当我单击页面中的锚点时,它会更新视图,但也会更新地址栏。我不希望这种情况发生,也不确定为什么会发生。如果您查看 ng-view 文档,他们有一个 Book 示例。当我单击示例中的各个选项卡时,视图已更新,但地址栏未更新。
  • 我很确定您误解了文档的工作原理。 URL 肯定会发生变化,但是因为这些示例是在 iframe 中运行的,所以您在文档页面的地址栏中看不到变化。请参阅run.plnkr.co/y48XXw2PrPa105qR 在它自己的视图中运行的示例
  • 我缺少的部分是在 ng-view 页面和它们链接到的 plunker 中,代码都在 iframe 中运行。当我查看您在自己的视图中运行的链接时,它的行为就像我的应用程序一样。谢谢。

标签: angularjs


【解决方案1】:

你应该这样设置你的链接:

<a href="#/Caseload">Caseload</a>

密钥是哈希#

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 2016-02-27
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多