好的,谢谢。我误解了你。我想我现在有一个更好的理解。请纠正我,如果我错了:
所以,你基本上试图做一个hello
链接指向同一页面内的一节。当您将网址更改为pageUrl#hello
时,该页面应跳转至ID为hello
的部分。
但问题是,既然你的部分有一个使用ngRoute
模块的AngularJS组件,该路由功能使您的页面重定向到pageUrl/#hello
,而不是跳跃与012的HTML部分。
这是正确的吗?
解决方案
如果我正确理解你的问题,解决的办法是检查你的ng-app='appName'
属性是在body
标签。如果是,则将其下移到组件的父元素。
如果散列链接是ng-app
元素的子元素,那么当您单击它时,AngularJS会认为您要重定向到另一个视图。这是导致Home
链接重定向到pageUrl#/home
的原因。
<body ng-app="demoApp">
<a href="#hello">Hello</a> <!-- redirects to #/hello -->
<div id="hello"></div>
<!-- ... -->
所以,如果你把散列链接ng-app
元素之外,那么它的行为,当你点击它的预期。
<body>
<a href="#hello">Hello</a> <!-- jumps to the 'hello' div -->
<div id="hello" ng-app="demoApp"></div>
<!-- ... -->
在页面加载
如果你想在页面跳转到hello
格在页面加载,那么你的控制器内设置window.location = '#hello'
。然后,当您访问pageUrl#hello
时,应出现hello
div而不是页面的顶部。
如果您没有控制器,或者不想使用控制器,那么在文档加载后,请检查哈希URL并以编程方式进行更改。
$(document).ready(function(){
if(window.location.hash == '#hello'){
window.location = '#hello';
}
})
嗯...这是一个代码块。我不知道它应该如何处理链接到页面特定部分的问题。 HTML元素甚至没有标识要链接元素的'id'属性。 – Quentin