AngularJS无法使用哈希跳转到锚点

时间:2014-09-25 06:29:31

标签: javascript html angularjs

我已经使用AngularJS建立了一个网站,我不需要使用路由,所以它没有实现。我希望能够根据锚点跳转到页面中的某个位置,因此我在导航栏中设置了一个链接:

<a href="/services#/myAnchor">Jump to anchor</a>

我放得更远:

<a name="/myAnchor">

但它不起作用,它必须与AngularJS有关,但由于我没有使用路由,我不知道它是什么。我尝试使用#myAnchor而没有/但Angular似乎在页面加载时将其放入,但无论如何都不起作用。

任何想法如何让页面锚点基本再次起作用?

1 个答案:

答案 0 :(得分:3)

您正在寻找$anchorScroll

<div id="scrollArea" ng-controller="ScrollController">
  <a ng-click="gotoBottom()">Go to bottom</a>
  <a id="bottom"></a> You're at the bottom!
</div>


angular.module('anchorScrollExample', [])
  .controller('ScrollController', ['$scope', '$location', '$anchorScroll',
    function ($scope, $location, $anchorScroll) {
      $scope.gotoBottom = function() {
        // set the location.hash to the id of
        // the element you wish to scroll to.
        $location.hash('bottom');

        // call $anchorScroll()
        $anchorScroll();
      };
    }]);