如何在更改页面时阻止上一页控制器工作?

时间:2016-07-14 09:59:36

标签: javascript html angularjs pagination

我在每页的滚动上应用分页。每次我更改页面时,分页功能也会从上一页重新加载。这样,当我遍历不同的页面时,每次从所有页面控制器调用分页函数。如何停止以前的页面控制器功能。

分页逻辑是在窗口滚动到底部,触发分页功能&页面获得更多内容。

以下是代码:

angular.element($window).bind("scroll",function() {
      var windowHeight = "innerHeight" in window ? window.innerHeight: document.documentElement.offsetHeight;
      var body = document.body,
           html = document.documentElement;
      var docHeight = Math.max(body.scrollHeight,body.offsetHeight, html.clientHeight,html.scrollHeight, html.offsetHeight);
      windowBottom = windowHeight + window.pageYOffset;
      if (windowBottom >= docHeight) {

          if($scope.moredataleft==true && $scope.loadingLoader==false)
            {   

                if($scope.drugnameScroll==true&&$scope.drugSearchScroll==false)
              {
                  if($scope.page==0)
                  {
                    $scope.page=2;
                  }
                  else{
                      $scope.page=$scope.page+1;
                      }
                  $scope.pagination();
              }


            }
          }

       });

1 个答案:

答案 0 :(得分:0)

我在angularjs中使用$ destroy事件获得了解决方案。 我必须按照@Nikos的建议取消绑定滚动事件处理程序,以在控制器被销毁时停止其工作。

$scope.$on('$destroy',function(){ 
  angular.element($window).unbind("scroll"); 
});