ng-repeat中的angularjs性能与ng-if结合使用

时间:2016-10-27 13:54:39

标签: javascript angularjs optimization angularjs-ng-repeat

我的情况很容易解释:我有一个用于填充表格的对象数组(50-250个元素),但我只需要可视化它们的一部分。行根据用户点击在运行时可视化变化。

总结一下,我的代码将是这样的

<div ng-repeat="position in positions track by $index" ng-if="position.display" >
    <!-- my code here -->
</div>

关键是position.display是每次用户触发事件时要计算的属性。所以我有两个选择

  1. 循环每个用户的位置,以计算position.display必须是true还是false

    $scope.userTriggerEvent = function() {
        positions.forEach(function(position) {
            if (...) { position.display = true; } else { position.display = false; }
        });
    }
    
  2. 使用以ng-if为参数在position内调用的函数,并返回truefalse

    <div ng-repeat="position in positions track by $index" ng-if="displayMe(position)">
    
    $scope.displayMe = function(position) {
        if (...) { return true; } else { return false; }
    }
    
  3. 考虑角度处理如何检查ng-if哪个更好? 我的猜测是第一个,因为角度必须只检查一个变量而不是函数的输出,但也许我错了,并以不同的方式进行角度优化

0 个答案:

没有答案