AngularJS窗口滚动事件不会触发

我知道有一些关于这个问题的类似问题,但我没有一个解决方案可以帮助我。

我正在使用AngularJS并想要检测滚动事件。 我尝试了很多关于如何获得事件的版本,但是最初它会在首次加载时触发,然后再也不会。

我上次尝试的代码如下:

$($window).on('scroll', alert('scrolled')); 

但我也试过这个:

  • Jquery .on(’scroll’)在滚动时不触发事件
  • 或者只是简单的JQuery .scroll()事件
  • window.onscroll = function(ev)…

还有更多,但没有任何作用。

谁能告诉我我做错了什么?

更新:我尝试了指令的东西,这可以很好地使用safari但不能使用chrome。 这是怎么回事?

Update2:使用shift键时,它适用于chrome移动视图。 镀铬到苹果触控板有什么限制吗? WTF?

我会用的

 $(window).scroll(function () { alert('scrolled') }) 

或者你可以使用

 angular.element($window).bind("scroll", function(e) { alert('scrolled') }) 

不需要angular.element()向控制器注入$ window

$window.onscroll = function (){ console.log('window was scrolled!'); };

或使用venilla javascript

window.onscroll = function (){ console.log('window was scrolled!'); };