自版本1.3.0-beta.10以来,AngularJS有一项新功能:"lazy one-time binding"。
简单表达式可以以::
为前缀,告诉角度在首次评估表达式后停止观看。给出的常见例子如下:
<div>{{::user.name}}</div>
是否有类似以下表达式的语法?
<div ng-if="user.isSomething && user.isSomethingElse"></div>
<div ng-class="{classNameFoo: user.isSomething}"></div>
答案 0 :(得分:160)
是。您可以为每个表达式添加前缀::
,甚至是ngIf
或ngClass
中的表达式:
<div ng-if="::(user.isSomething && user.isSomethingElse)"></div>
<div ng-class="::{classNameFoo: user.isSomething}"></div>
实际上,the code只是检查表达式中的两个第一个字符是:
,以便激活一次性绑定(然后删除它们,因此括号不均匀需要)。其他一切都是一样的。