这是我的Demo http://plnkr.co/edit/GArzH9gTQCd0r53WhuWO?p=preview
app.run(function($rootScope, $location, $anchorScroll) {
//when the route is changed scroll to the proper element.
$rootScope.$on('$routeChangeSuccess', function(newRoute, oldRoute) {
console.log("called routeChangeSuccess");
if ($location.hash()) $anchorScroll();
});
});
- 点击转到一个的末尾它将导航到带有 id 的 div
- 第二次点击同一个链接,它不会做任何事情
我做错了什么?或者这与角度有关?
注意:对此的破解方法是使用点击事件,这应该可以工作,正在寻找直接的解决方案
使用角度和路线版本1.5.5
*添加赏金
我检查了你的 plunkr,我注意到你没有指定路线,当给出锚标记时,因此当我将特定行更改为此时,不会触发“$routeChangeSuccess”
<a href="/one/#one"> go to end of one </a>
我锚定滚动工作正常。
解决方案: Plunkr http://plnkr.co/edit/keO12ymQfATuxUiabJ7U?p=preview
请注意HTML5模式在路由方面的挑战,here https://stackoverflow.com/questions/16569841/reloading-the-page-gives-wrong-get-request-with-angularjs-html5-mode,如果您还没有考虑到这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)