我在每页的滚动上应用分页。每次我更改页面时,分页功能也会从上一页重新加载。这样,当我遍历不同的页面时,每次从所有页面控制器调用分页函数。如何停止以前的页面控制器功能。
分页逻辑是在窗口滚动到底部,触发分页功能&页面获得更多内容。
以下是代码:
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();
}
}
}
});
答案 0 :(得分:0)
我在angularjs中使用$ destroy事件获得了解决方案。 我必须按照@Nikos的建议取消绑定滚动事件处理程序,以在控制器被销毁时停止其工作。
$scope.$on('$destroy',function(){
angular.element($window).unbind("scroll");
});