角懒惰一次性绑定表达式

问题描述

是。您可以在每个表达式前添加::,甚至可以在ngIf或中添加前缀ngClass

<div ng-if="::(user.isSomething && user.isSomethingElse)"></div>
<div ng-class="::{classNameFoo: user.isSomething}"></div>

实际上,代码只是检查表达式中的前两个字符是:为了激活一次性绑定(然后将其删除,因此甚至不需要括号)。其他所有内容保持不变。

解决方法

自1.3.0-beta.10版本以来,AngularJS具有一项新功能:“懒惰的一次性绑定”

可以在简单表达式的前面加上::,告诉angular在首次评估表达式后停止观看。给出的常见示例如下所示:

<div>{{::user.name}}</div>

类似以下表达式的语法是否类似?

<div ng-if="user.isSomething && user.isSomethingElse"></div>
<div ng-class="{classNameFoo: user.isSomething}"></div>