1.table数据请求前记录scrollTop
$scope.scrollPos = document.documentElement.scrollTop;
2.html中添加指令repeat-finishi
<tr ng-repeat="item in lists" class="repeat-finish">
3.写入指令
AppDirective.directive('repeatFinish', function () {
return {
restrict: "C",
link: function (scope, element, attr) {
if(scope.$last === true){
$(document).scrollTop(scope.scrollPos);
}
}
}
});
当指令检测到DOM已经渲染好(scope.$last === true表示repeat渲染完成)立即恢复之前记录的scrollTop,这样从table加载好到恢复scrollTop就接近无延迟,闪烁的情况消失了。