【问题标题】:What does two colons inside an angular expression {{::}} mean?角度表达式 {{::}} 中的两个冒号是什么意思?
【发布时间】:2016-04-13 05:10:48
【问题描述】:

有什么区别:

{{::office.name}}

{{office.name}}

在 angularJS 中?

【问题讨论】:

    标签: javascript angularjs angular-template


    【解决方案1】:

    One-time binding From Angular Docs.

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

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


    博客:AngularJS one-time binding syntax 来自@Todd Motto

    简而言之,当我们在 DOM 中声明诸如 {{ ::foo }} 之类的值时,一旦定义了该值,Angular 就会渲染它,将其与观察者解除绑定,从而减少 $digest 中的绑定量环形。简单!

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2011-02-23
        • 1970-01-01
        • 2012-10-09
        • 1970-01-01
        • 2020-05-21
        • 1970-01-01
        • 2019-09-14
        • 2012-09-25
        • 1970-01-01
        相关资源
        最近更新 更多