问题:我的loadMore()方法在每个容器的滚动条上执行。
含义:loadMore()在父容器的每个鼠标滚动上执行(infinite-scroll-parent =“true”)
期望的结果:只有当infiniteScrollDistance满足其条件时,才能获取loadMore(),而不是我做的任何滚动。
我的代码高度启发了demo_basic& demo_async。
我的应用程序是一个照片库。@H_502_10@我通过ajax调用加载照片,并将其填充到缩略图指示中继器中。@H_502_10@我在控制器初始化时禁用ng-Infinite-Scroll,并在回调成功时启用它。
<div class="thumbnails grid__item page--content"> <div id="gallery" class="unstyled-list" infinite-scroll='loadMore()' infinite-scroll-disabled='album.busy' infinite-scroll-parent="true" infinite-scroll-immediate-check="false" infinite-scroll-distance='2'> <my-photo-directive ng-repeat="photo in photos"></my-photo-directive> </div> </div>
我的咖啡代码没有惊喜。@H_502_10@它的逻辑是不重要的,因为如果我放置一个简单的console.log,问题仍然发生…..
$scope.album.busy = true $scope.loadMore = -> $scope.$apply -> $scope.album.busy = true console.log('loadMore() been executed here')
我的缩略图指令是一样的。没有惊喜,最后一张照片被填充到中继器上,我启用了组件。
app.directive 'myPhotoDirective',['$window',($window) -> return {} = .... link: (scope,element,attrs) -> if scope.$last scope.album.busy = false
我不知道我错过了什么或做错了@H_502_10@我希望有人能在这里帮助我。
谢谢。
Why is ngInfiniteScroll triggering my expression on every single@H_502_10@ scroll event?
The infiniteScroll directive uses the height of the element that it’s@H_502_10@ attached to in order to determine how close to the bottom of the@H_502_10@ window it is. In some cases,the browser can report a height of 0,@H_502_10@ which causes this behavior. Usually,this is due to a container@H_502_10@ element that only contains floated children. The simplest way to fix@H_502_10@ this problem is to add a “spacer” element to the bottom of the@H_502_10@ container (something like
<div style='clear: both;'></div>)
; 07000 for more details.