2014-10-07 54 views
0

我知道如何在纯JS中滚动时检测文档结束,我的问题是 - 如何在AngularJS中实现该功能,我知道我应该将滚动事件附加到两个$window$document,我的问题是关于在哪里实施行为?,指令?,服务?,如果任何人都可以告诉我什么是正确的方式来实现在AngularJS kind of detection我会非常感谢。在Angular JS中检测滚动到文档结束的实现

+0

你应该去看看这个模块的源代码。 http://binarymuse.github.io/ngInfiniteScroll/。它在滚动检测方面做了很多工作。 – 2014-10-07 18:07:37

+0

@GordonBockus感谢您的链接。 – 2014-10-07 18:19:54

回答

1

根据你在做什么,它可以在地方的组合。通常,使用DOM操作打交道时(这是我认为会发生),你应该用一个指令 - 是这样的:

app.directive("scrollDetector", ["$document", "$window", function($document, $window) { 
    return { 
     restrict: "A", 
     link: function(scope, elem, attrs) { 
      angular.element($window).bind("scroll", function() { 
       //scroll logic here 
      }); 
     } 
    } 
}]); 

,然后实现scroll-detector指令。 (例如:<div scroll-detector></div>

+0

谢谢,现在我知道如何。 – 2014-10-07 18:20:37

2

经过长时间的苦苦挣扎后,偶然发现图书馆:http://binarymuse.github.io/ngInfiniteScroll/documentation.html

根据您的使用情况,你可以这样做:

<div infinite-scroll="addMoreItems()"> 
    <div ng-repeat="item in items">Item number {{$index}}: {{$item}}</div> 
</div> 

因为它可以让你这个连接到任何div-你几乎可以做你想要的任何功能。

+0

谢谢,我会看看。 – 2015-09-29 08:02:19

+0

更新后的链接:http://sroze.github.io/ngInfiniteScroll/documentation.html – yarl 2016-10-22 00:47:12