AngularJs指令不工作,直到页面重新加载

问题描述:

我试图建立一个angularJs指令,这将使一个div粘。 但我卡在初始状态。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>

;

我找到了解决方案。 这真的很奇怪。我刚刚使用了getElementById而不是querySelector。 问题已解决。