在每个鼠标滚动上调用angularjs – ngInfiniteScroll – loadMore()方法

前端之家收集整理的这篇文章主要介绍了在每个鼠标滚动上调用angularjs – ngInfiniteScroll – loadMore()方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
解决方案下面的评论

问题:我的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@我希望有人能在这里帮助我。

谢谢。

没有Plunker可以看到实际的代码,我会直接指导ngInfiniteScroll常见问题:

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.

原文链接:https://www.f2er.com/angularjs/144416.html

猜你在找的Angularjs相关文章