我试图用最好的方法去避免不必要的渲染/处理时间在我的AngularJS应用程序中选择2个指令之间显示的页面内的页面ngRepeat循环,想知道哪个是最好的方法:使用div包装器或在指令标签内过滤指令
假设该指令html元素直接设置ng-if
,如:
<div ng-repeat="element in list">
<my-directive-a ng-if="someFunction(element)"></my-directive-a>
<my-directive-b ng-if="!someFunction(element)"></my-directive-b>
</div>
或从该指令的模板,并利用移动出第一<div>
它作为每个指令的包装。例如:
<div ng-repeat="element in list">
<div ng-if="someFunction(element)">
<my-directive-a></my-directive-a>
</div>
<div ng-if="!someFunction(element)">
<my-directive-b></my-directive-b>
</div>
</div>
注:每个指令的起始<div>
元素可能具有相同的行为被修改,所以我基本上会采取了指令的HTML和移动它的指令申报外,以放置ng-if
有
这种情况下最好的方法是什么?这样或那样做会有什么性能影响吗?或者它只是一样的东西?考虑一下列表中元素的数量可能会变得非常大。
如果名单将大......鉴于越少越好观察家。由于NG-如果创建表和子作用域可能会更好过负载条件到另一个指令,只有评估'someFunction'一次。有关这些指令的更多细节将有所帮助 – charlietfl