2017-09-16 18 views
2

Angular 1.x에서 매우 간단한 scrollTo를 사용하려고합니다. 클릭하면 div # id로 스크롤해야하는 naviagation 메뉴 링크가 있습니다. 나는 이것을 '약속 (약속)'으로 만 작동시킬 수 있습니다.약속이없는 각도 앵커 스크롤

<li><a href="#" ng-click="tracking()">Go to Tracking</a></li> 


$scope.tracking = function() { // go to tracking when header button is clicked 
     $http.get('/includes/modules/get_home_destinations.php') 
     .then(function(reply){ 
      if (reply.data) { 
       $scope.destinations = reply.data; 
       $location.hash('home-tracking'); 
      }   
     }); 
    }; 

을하지만이 응답하지 않습니다 :

예를 들어,이 작품

$scope.tracking = function() { // go to tracking when header button is clicked 
    $location.hash('home-tracking'); 
}; 

그것은 약속이 필요한 경우로, 그러나이없이 간단한 클릭에 일하러 가야 약속?

+0

'href = "#"'없이 시도 할 수 있습니까? –

+0

@MuhammedHasanCelik 작동했습니다! href가 문제를 일으키는 이유는 무엇입니까? –

답변

1

이로 인해 HREF = "#"이다 그렇 겠지. 먼저 href가 페이지를 "#"로 리디렉션하기 때문에 약속이 시간 지연과 함께 실행되고 원하는 페이지로 리디렉션됩니다. 하지만 약속이 없으면 시간 지연이 없으며 코드가 즉시 실행되고 href가 페이지를 '#'로 리디렉션하고 페이지가 멈 춥니 다.

1

희망 코드를 아래이 유용 할 것입니다 : HTML 파일에서

컨트롤러 파일

<div id="home-tracking"> 
    <h1>Home Traking Content</h1> 
</div> 

<a ng-click="tracking()">Go to Tracking</a> 

angular.module('trackingApp').controller('TrackingCtrl', function($location, $anchorScroll) { 
    $scope.tracking = function() { 
      $location.hash('home-tracking'); 
      $anchorScroll(); 
    } 
}) 
+0

이것도 작동 할 것입니다 - href가 문제의 원인이었던 것 같습니다. –