angularexpression式{{::}}中的两个冒号是什么意思?
有什么区别:
{{::office.name}}
和
{{office.name}}
在angularJS?
{{::office.name}}
语法是从1.3版开始提供的Angular的一次性绑定
这里有一个很好的博客解释它。
一次性捆绑从Angular Docs。
以
::
开始的expression式被认为是一次性expression式。 一次性expression式一旦稳定就会停止重新计算,如果expression式结果是一个非未定义的值(见下面的值稳定algorithm),则会在第一个摘要之后发生。
在许多情况下,这些值只需要在视图中显示,而不会从视图或控制器更新。 但是,如果使用双向绑定, $digest
将检查每个循环中expression式的任何更改,这是不必要的。 在这些情况下,应在expression前使用::
。 正如上面的陈述所述,对于这种情况,这比双向绑定语法更有效。
博客: AngularJS @Todd Motto 的一次性绑定语法
在坚果壳中,当我们在DOM中声明一个值
{{ ::foo }}
,一旦这个值被定义,Angular将会呈现它,从观察者中解除绑定,从而减less$digest
内的绑定的数量循环。 简单!