angularjs实现下拉加载更多

本文介绍了一种使用AngularJS指令实现的下拉加载更多数据的方法。通过监听滚动事件并在达到页面底部90%时触发加载函数,实现了动态加载数据的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

angularjs实现下拉加载更多数据,

我是通过指令来实现的,直接上代码





.directive("scroll",  ["$window", "$document",function ($window, $document) {
    return function(scope, element) {
        angular.element($window).bind("scroll", function() {
            var pageYOffset = $window.pageYOffset;
            var clientHeight = $document[0].documentElement.clientHeight;
            var offsetHeight = $document[0].body.offsetHeight;
            //当滚动到90%的时候去加载
            if(pageYOffset+clientHeight>offsetHeight*0.9)
            {

                //scope.shopWorkCanLoad是否可加载,controller中定义
                //scope.shopWorkOnLoad是否正在加载,controller中定义
                if(scope.shopWorkCanLoad==true && scope.shopWorkOnLoad==false){
                    //加载数据,controller中定义
                    scope.loadShopWork();//
                }
            }
        });
    };
}]);

就这么多

用法我就不用再说了吧

2018年4月14日19:19:44更新

1.加载更多的函数可以传入

2.可以绑定到div的滚动监听上面

<div class="classContent" scroll has-more="hasMore" on-loading="onLoading" load-more="getMoreList()">
</div>
.directive("scroll",  ["$window", "$document",function ($window, $document) {
   return {
      scope: {//=将ngModel同指定对象绑定 &将引用传递给这个方法 @储存与fromName相关联的字符串
         hasMore: '=', // 将hasMore同指定对象绑定
         onLoading: '=', // 将onLoading同指定对象绑定
         loadMore: '&', // 将引用传递给这个方法
      },
      link:function(scope, element) {
         angular.element(element).bind("scroll", function(event) {
            let _element=event.target;
            var {scrollHeight,scrollTop,clientHeight} = _element;
            if(scrollTop+clientHeight>scrollHeight*0.9){
               if(scope.hasMore==true && scope.onLoading==false){
                  scope.loadMore();
               }
            }
         });
      }
   };
}]);

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值