我有一个有限元素大约30-40个元素的列表,但屏幕上的平均渲染元素数量是4-7。我正在使用ng-repeat来呈现此列表。渲染每个元素非常昂贵我想渲染仅存在于视口中的元素。有限元素的角JS渲染列表
虚拟卷轴对我来说不是一个解决方案,因为元素高度可以不同,但我也没有无限元素。有没有办法做到这一点?
我有一个有限元素大约30-40个元素的列表,但屏幕上的平均渲染元素数量是4-7。我正在使用ng-repeat来呈现此列表。渲染每个元素非常昂贵我想渲染仅存在于视口中的元素。有限元素的角JS渲染列表
虚拟卷轴对我来说不是一个解决方案,因为元素高度可以不同,但我也没有无限元素。有没有办法做到这一点?
因为你还没有添加一些代码,我会尽力想象你想要什么。
在你的情况下,我会使用类似ngInfiniteScroll
的东西。
正如你可以在演示链接见: https://sroze.github.io/ngInfiniteScroll/demo_basic.html
$scope.images = [1, 2, 3, 4, 5, 6, 7, 8];
$scope.loadMore = function() {
var last = $scope.images[$scope.images.length - 1];
for(var i = 1; i <= 8; i++) {
$scope.images.push(last + i);
}
};
正如你可以看到这是示例包括有限阵列或项目,因此很容易为你设置了检查站。
现在我希望这可以解决您的问题。否则,请分享您的代码库。
干杯
这并不能解决我的问题,因为我的元素的高度不一样。我在这个问题中也提到了同样的问题。 – user1017860
尝试角VS-重复(https://github.com/kamilkp/angular-vs-repeat,http://kamilkp.github.io/angular-vs-repeat/#?tab = 6) - 它可以处理不同高度的元素。但是你需要一种方法来计算不可见元素的高度。 –
@ user1017860您是否尝试过我的解决方案?检查我的答案。 –