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

2admgd59  于 6个月前  发布在  Angular
关注(0)|答案(2)|浏览(75)

这两种情况有什么区别:

{{::office.name}}

字符串

{{office.name}}


在AngularJS?

klsxnrf1

klsxnrf11#

One-time bindingFrom Angular Docs.

::开头的表达式被认为是一次性表达式。一次性表达式一旦稳定,就会停止重新计算,如果表达式结果是非未定义值,则会在第一个摘要之后发生(请参阅下面的值稳定算法)。
在许多情况下,值只需要显示在视图中,并且永远不会从视图或控制器中更新。但是,如果使用双向绑定,$digest将在每个周期中检查表达式中的任何更改,这是不必要的。在这些情况下,::应该在表达式之前使用。正如上面的语句所述,对于这种情况,这比双向绑定语法更有效。
博客:AngularJS one-time binding syntax from @托德座右铭
简单地说,当我们在DOM中声明一个值,比如{{ ::foo }},一旦这个值被定义,Angular就会渲染它,从观察者中解除绑定,从而减少$digest循环中的绑定量。很简单!

vfwfrxfs

vfwfrxfs2#

{{::office.name}}语法是Angular的一次性绑定,从版本1.3开始可用
Here's一个很好的博客解释它。

相关问题