AngularJS 锚点点击第二次不起作用

2024-01-27

这是我的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();
      });
    });
  1. 点击转到一个的末尾它将导航到带有 id 的 div
  2. 第二次点击同一个链接,它不会做任何事情

我做错了什么?或者这与角度有关?

注意:对此的破解方法是使用点击事件,这应该可以工作,正在寻找直接的解决方案

使用角度和路线版本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(使用前将#替换为@)

AngularJS 锚点点击第二次不起作用 的相关文章

随机推荐