2016-10-24 76 views
0

我有一个有限元素大约30-40个元素的列表,但屏幕上的平均渲染元素数量是4-7。我正在使用ng-repeat来呈现此列表。渲染每个元素非常昂贵我想渲染仅存在于视口中的元素。有限元素的角JS渲染列表

虚拟卷轴对我来说不是一个解决方案,因为元素高度可以不同,但​​我也没有无限元素。有没有办法做到这一点?

+0

尝试角VS-重复(https://github.com/kamilkp/angular-vs-repeat,http://kamilkp.github.io/angular-vs-repeat/#?tab = 6) - 它可以处理不同高度的元素。但是你需要一种方法来计算不可见元素的高度。 –

+0

@ user1017860您是否尝试过我的解决方案?检查我的答案。 –

回答

0

因为你还没有添加一些代码,我会尽力想象你想要什么。

在你的情况下,我会使用类似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); 
    } 
    }; 

正如你可以看到这是示例包括有限阵列或项目,因此很容易为你设置了检查站。

现在我希望这可以解决您的问题。否则,请分享您的代码库。

干杯

+0

这并不能解决我的问题,因为我的元素的高度不一样。我在这个问题中也提到了同样的问题。 – user1017860