【问题标题】:Function fired on all controller- angualrjs在所有控制器上触发的函数 - angularjs
【发布时间】:2017-05-31 06:09:34
【问题描述】:

我有这个

  $window.onscroll = function() { scrollFunction() };

            function scrollFunction() {
                if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
                    document.getElementById("btt").style.display = "block";
                } else {
                    document.getElementById("btt").style.display = "none";
                }
            }

一个控制器中的函数,但即使在我导航到另一个页面后,scrollFunction 也会被触发。如何将该功能仅限于特定页面(控制器)。

【问题讨论】:

  • 是 angularjs 还是 JavaScript? :(
  • angularjs @RameshRajendran
  • 但是你的代码看起来像 JavaScript。
  • 将此脚本放在一个控制器中,并在该滚动页面中使用此控制器。
  • @RameshRajendran 除了$window :)

标签: javascript angularjs scrolltop document-body


【解决方案1】:

控制器销毁时需要停止监听滚动事件

angular.element($window).on('scroll', scrollFunction);

scope.$on('$destroy', function () {

  angular.element($window).off('scroll', scrollFunction);
});

【讨论】:

    猜你喜欢
    • 2015-12-28
    • 2020-08-08
    • 1970-01-01
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多