AngularJS - 1指令与ng-if语句或两个指令?

时间:2016-07-25 08:43:40

标签: javascript angularjs angularjs-directive angularjs-ng-repeat angular-ng-if

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

1 个答案:

答案 0 :(得分:1)

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

这是什么意思?

  1. Ng-if需要时间进行初始化。 (不多)

  2. Ng-if如果创建新的隔离范围。 (不多)

  3. Ng-if与DOM一起运行。 (可能非常昂贵的操作)

  4. 因此,性能与DOM相关的主要问题。加速ng-if的最佳方法是减少dom操作。

    另外,尽量避免使用ng-if和ng-repeat。当然你可以这样做,但要小心这样做。

相关问题