2017-12-27 13 views
2

div 스티커를 만드는 angularJs 지시문을 작성하려고합니다. 그러나 나는 초기 상태에 머물러 있습니다.AngularJs 지시문이 페이지를 다시로드 할 때까지 작동하지 않습니다.

문제는이 스크롤 이벤트가 페이지를 다시로드 할 때만 발생한다는 것입니다. 처음에는 경로 변경시 작동하지 않습니다. 하지만 일단 페이지를 새로 고침하면 경로 변경으로도 작동합니다.

내가 뭘 잘못하고 있니?

코드는 다음과 같습니다

(function (angular, window) { 
 
    "use strict"; 
 

 
    function stickyDivDirective($compile, $timeout) { 
 
     function directiveLink(scope, element, attributes) { 
 

 
      function scrollFunction(targetDocument) { 
 
       console.log('Scrolling'); 
 
      } 
 

 
      angular.element(document.querySelector('md-content')).on('scroll', scrollFunction); 
 
     } 
 
     
 
     var directive = { 
 
      restrict: "A", 
 
      scope: { 
 
       mainContainer: "@", 
 
       targetContainer: "@", 
 
       offsetHeight: '@', 
 
       scrollableElement: '@' 
 
      }, 
 
      link: directiveLink 
 
     }; 
 
     return directive; 
 
    } 
 

 
    stickyDivDirective.$inject = ["$compile", "$timeout"]; 
 
    angular 
 
     .module(appSuite.module + ".directives") 
 
     .directive("stickyDiv", stickyDivDirective); 
 
})(window.angular, window);

<div class="" 
 
    id="saa__variablesBar" 
 
    sticky-div> 
 
<div>

;

답변

1

해결책을 찾았습니다. 정말 이상합니다. 방금 getElementById대신 querySelector 대신 사용했습니다. 문제가 해결되었습니다.