具有静态值的指令
Directives with static value
如果我使用带有静态值的 AngularJS 指令,假设:
<input type="text" ng-readonly="true" />
我的问题是:
是否会在 AngularJS 个周期重新评估此指令,从而导致性能下降? (考虑更严重的情况)
Will this directive be re-evaluated on AngularJS cycles
:
是的,ng-readonly
的值是一个 Angular Expression 而这个表达式 可能 是一个更复杂的三元或函数引用。因此,指令 必须 对其进行脏检查(对于更复杂的情况)。
leading to a drop on performance
这取决于很多因素,在做出假设之前应该进行测试和基准测试。 很多 脏检查可以发生而没有任何明显的性能下降。
从 Angular 1.3 开始,您可以使用 bind-once 语法 (::
) 可能不会将值添加到监视队列,但我不确定这是怎么回事将与 true
:
一起工作
<input type="text" ng-readonly="::true" />
如果我使用带有静态值的 AngularJS 指令,假设:
<input type="text" ng-readonly="true" />
我的问题是:
是否会在 AngularJS 个周期重新评估此指令,从而导致性能下降? (考虑更严重的情况)
Will this directive be re-evaluated on AngularJS cycles
:
是的,ng-readonly
的值是一个 Angular Expression 而这个表达式 可能 是一个更复杂的三元或函数引用。因此,指令 必须 对其进行脏检查(对于更复杂的情况)。
leading to a drop on performance
这取决于很多因素,在做出假设之前应该进行测试和基准测试。 很多 脏检查可以发生而没有任何明显的性能下降。
从 Angular 1.3 开始,您可以使用 bind-once 语法 (::
) 可能不会将值添加到监视队列,但我不确定这是怎么回事将与 true
:
<input type="text" ng-readonly="::true" />