Angularjs - 通过手动输入url到地址栏导航到特定div

时间:2014-10-02 21:11:55

标签: html angularjs

假设我在索引页面上有两个div:

<div id="divA"></div>
<div id="divB"></div>

使用Angular(假设通过路由),有没有办法手动输入导航到所述页面上特定div的URL(在地址栏中)。

http://website.com/divA
http://website.com/divB

我遇到过通过锚标记执行此操作的方法,但当用户在地址栏中输入特定网址时,我的任务是找出一种方法。如果有人能解释一个潜在的解决方案,我会很感激这种见解。

1 个答案:

答案 0 :(得分:0)

我假设您将AngularJS的路线用作页面。

一件好事就是在调用页面控制器触发基于当前位置的操作后触发操作。您可以使用$ anchorScroll()(doc here

一旦找到您所在的位置,选择使用ng-click,您只需调用该功能:

<div id="scrollArea" ng-controller="ScrollController">
  <a id="middle"></a> You are in /divA
  <a id="bottom"></a> You are in /divB
</div>

和javascript:

  app.controller('ScrollController', ['$scope', '$location', '$anchorScroll',
    function ($scope, $location, $anchorScroll) {
        if($location.path() == "/divA"){
            $location.hash('middle');
         }
        else if($location.path() == "/divB"){
            $location.hash('bottom');
        }
        // call $anchorScroll()
        $anchorScroll();
    }]);