有关Angular JS性能的快速问题。

我有一个ng-repeat列出了搜索结果的负载。我使用指令/模板提取每个搜索项。

使用包含两个指令的ng-if语句还是使用一个指令并在其中包含多个ng-if语句并使用表达式或语句更好?

例如。 Ng-if语句包含两个指令:

<div ng-repeat>
    <directive-1 ng-if="this"></directive-1>
    <directive-2 ng-if="that"></directive-2>
</div>


要么

<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...

最佳答案

什么是ng-if?带有隔离范围(2)的指令(1)删除或附加DOM(3)。

这是什么意思?


Ng-if需要时间来初始化。 (不多)
Ng-if创建新的隔离范围。 (不多)
Ng-if与DOM一起使用。 (操作可能非常昂贵)


因此,性能的主要问题与DOM有关。加快ng-if的最佳方法-减少dom操作。

另外,请尝试避免将ng-if与ng-repeat一起使用。当然可以,但是要小心。

09-30 16:44
查看更多