从1.3.0-Beta.10版本开始,AngularJS有了一个新特性:"lazy one-time binding"。
简单的表达式可以用::
作为前缀,告诉angular在表达式第一次求值后停止观察。给出的常见示例如下:
<div>{{::user.name}}</div>
像下面这样的表达式有类似的语法吗?
<div ng-if="user.isSomething && user.isSomethingElse"></div>
<div ng-class="{classNameFoo: user.isSomething}"></div>
发布于 2014-05-31 20:20:41
是。您可以为每个表达式加上::
前缀,即使是ngIf
或ngClass
中的表达式也可以
<div ng-if="::(user.isSomething && user.isSomethingElse)"></div>
<div ng-class="::{classNameFoo: user.isSomething}"></div>
实际上,the code只是检查表达式中的前两个字符是否为:
,以便激活一次性绑定(然后删除它们,因此甚至不需要括号)。其他一切都保持不变。
https://stackoverflow.com/questions/23969926
复制相似问题