AngularJs指令需要页面重新加载才能生效

3

我正在尝试构建一个angularJs指令,该指令将使一个div粘性。但我卡在了初始状态。

问题是,此滚动事件仅在页面重新加载时触发。 在路由更改时不起作用,但一旦重新加载页面,它就可以与路由更改一起使用。

我做错了什么呢?

以下是代码:

(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个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接