关于Angular JS中的性能的快速问题。
我有一个ng-repeat列出了大量的搜索结果。我使用指令/模板来提取每个搜索项。
使用包装两个指令的ng-if语句或使用一个指令并在其中包含多个ng-if语句并使用表达式或语句是否更好。
E.G。包含两个指令的Ng-if语句:
<div ng-repeat>
<directive-1 ng-if="this"></directive-1>
<directive-2 ng-if="that"></directive-2>
</div>
OR
<div ng-repeat>
<directive-1></directive-1>
</div>
并且在指令-1中你有......
<img src="1" ng-if="this">
<img src="2" ng-if="that">
<span>{{title || title2}}</span>
etc...
答案 0 :(得分:1)
什么是ng-if?它是带有隔离范围(2)的指令(1),用于删除或附加DOM(3)。
这是什么意思?
Ng-if需要时间进行初始化。 (不多)
Ng-if如果创建新的隔离范围。 (不多)
Ng-if与DOM一起运行。 (可能非常昂贵的操作)
因此,性能与DOM相关的主要问题。加速ng-if的最佳方法是减少dom操作。
另外,尽量避免使用ng-if和ng-repeat。当然你可以这样做,但要小心这样做。