2015-11-09 2 views
1

Я попытался предупредить сообщение, если пользователь прокрутил нижнюю часть. Я использую angularJS, и он, похоже, не работает.Window.scroll не работает в верхнем регуляторе

app.controller('MainController',function($scope, $rootScope, $route, $http, $timeout){ 

    // overflow auto 
    $(document).ready(function() { 
     $(window).scroll(function() { 
     if($(window).scrollTop() + $(window).height() == $(document).height()) { 
      alert("bottom!"); 
     } 
     }); 
    }); 
}); 

Любые помощь?

+1

FYI не рекомендуется связывать события в контроллере. Вы должны сделать для этого директиву. В любом случае у вас есть консольные ошибки? – Dvir

+1

Кроме того, вы можете ввести объект '$ window' в свой контроллер или вашу директиву. Посмотрите, поможет ли это. –

ответ

1

Вы добираетесь туда. Как отметил Двир, будет легче протестировать ваш контроллер, если вы сохраните все взаимодействия с DOM в директивах. Таким образом, вы можете сделать это следующим образом:

angular.module("myApp", []) 
    .directive('myDirective', function() { 
     return { 
      link: function(scope, element, attrs){ 
       $(window).scroll(function() { 
        if($(window).scrollTop() + $(window).height() == $(document).height()) { 
         alert("bottom!"); 
        } 
       }); 
      } 
     }; 
    }); 

Вот рабочая скрипку: https://jsfiddle.net/rdvjjav2/1/

+0

Я думаю, что это хороший способ, если вы не хотите использовать модуль «ng-infin-scroll» и выполнить простой бесконечный свиток. – Jaison

Смежные вопросы