这个问题很简单,但我确信它为应用程序开发提供了附加价值。
在性能方面,使用
是否更好?ng-repeat="r in roads", ng-hide="r.distance > 1000"
或者在控制器中推送数组中的项更好,像这样:
for (var i in $scope.roads) {
var road = $scope.roads[i];
if (road.distance <= 1000) $scope.roadsToShow.push(road);
}
然后使用,就像这样重复?
ng-repeat="r in roadsToShow"
就更好的性能而言,哪个被认为是最佳实践?假设数组中的对象超过1000个
过滤数组会明显更好,原因如下:
最重要的是ng-hide
需要创建一个内部手表,手表是昂贵的,可能会导致性能瓶颈
其次,将有更少的dom节点来渲染
也有很多方法可以在angular中进行过滤。
不要在ng-repeat
中使用ng-hide
、ng-show
、ng-if
等作为过滤工具
最好在控制器或服务器上过滤数组项,而不是在呈现后隐藏它们。如果在显示数组之前对其进行过滤,浏览器就不需要呈现与该项关联的DOM,然后再花时间隐藏它。请记住,使用ng-hide
将CSS类display: none
应用于元素,因此节点存在但不可见。