角度表达式{{::}}中的两个冒号是什么意思

What does two colons inside an angular expression {{::}} mean?

本文关键字:两个 意思 是什么 表达式      更新时间:2023-09-26

之间有什么区别

{{::office.name}}

{{office.name}}

在angularJS中?

从Angular Docs一次性绑定

::开头的表达式被认为是一次性表达式。一次性表达式一旦稳定就会停止重新计算,如果表达式结果是未定义的值,则在第一次摘要之后会发生这种情况(请参阅下面的值稳定算法)。

在许多情况下,值只需要显示在视图中,并且永远不会从视图或控制器更新。但是,如果使用双向绑定,$digest将在每个循环中检查表达式中的任何更改,这是不必要的。在这些情况下,应在表达之前使用::。如上所述,对于这种情况,这比双向绑定语法更有效。


博客:AngularJS一次性绑定语法来自@Todd Motto

在坚果壳中,当我们在DOM中声明一个值(如{{ ::foo }})时,一旦定义了这个值,Angular就会对其进行渲染,将其从观察者中解除绑定,从而减少$digest循环中的绑定量。易于理解的

{{::office.name}}语法是Angular的一次性绑定,自1.3版本起可用
这里有一个很好的博客来解释它。