【发布时间】: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/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