如果 ng-if 在加载/初始化时评估为 false,dom 元素在被删除之前是否仍会被创建?
If ng-if evaluates to false on load / init, will a dom element still be created before being removed?
这更多是为了加载时间而不是带宽。我现在有很多 ng-when,我觉得观察者正在减慢我的应用程序。
我想知道 ng-if 是否真的会创建关联的控制器,然后在以后删除它,即使 ng-if 从一开始就计算为 false。
我在 Angular 1.4(我们稍后会迁移到 4)
谢谢!
没有。只要 Angular 表达式的计算结果为 falsey,就不会创建 DOM 元素。然而,AngularJS 表达式将在每个摘要循环中被评估多次。
如果你想限制疏散,使用One-time binding:
An expression that starts with ::
is considered a one-time expression. One-time expressions will stop recalculating once they are stable, which happens after the first digest if the expression result is a non-undefined value.
有关详细信息,请参阅 AngularJS Developer Guide - How to benefit from one-time binding。
这更多是为了加载时间而不是带宽。我现在有很多 ng-when,我觉得观察者正在减慢我的应用程序。
我想知道 ng-if 是否真的会创建关联的控制器,然后在以后删除它,即使 ng-if 从一开始就计算为 false。
我在 Angular 1.4(我们稍后会迁移到 4)
谢谢!
没有。只要 Angular 表达式的计算结果为 falsey,就不会创建 DOM 元素。然而,AngularJS 表达式将在每个摘要循环中被评估多次。
如果你想限制疏散,使用One-time binding:
An expression that starts with
::
is considered a one-time expression. One-time expressions will stop recalculating once they are stable, which happens after the first digest if the expression result is a non-undefined value.
有关详细信息,请参阅 AngularJS Developer Guide - How to benefit from one-time binding。