为了账号安全,请及时绑定邮箱和手机立即绑定

AngularJS:为什么ng-BIND在角度上比{}好?

AngularJS:为什么ng-BIND在角度上比{}好?

AngularJS:为什么ng-BIND在角度上比{}好?我参加了一次有角度的演讲,会上提到的人之一ng-bind比{{}}绑定。其中一个原因,ng-bind将变量放在监视列表中,只有当有模型更改时,数据才会被推送到视图中,另一方面,{{}}每次都会插值这个表达式(我猜这是角度循环)并推送这个值,即使值改变与否。此外,如果屏幕上没有多少数据,则可以使用{{}}而且性能问题也是看不见的。有人能帮我解释一下这个问题吗?
查看完整描述

3 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

能见度:

当您的angularjs正在引导时,用户可能会看到您放在html中的括号。这可以用ng-cloak..但对我来说,这是一个解决办法,如果我用的话,我不需要用ng-bind.


业绩:

这个{{}}慢得多.

这,这个ng-bind指令并将一个观察者放在传递的变量上。所以ng-bind将只适用于传递的值实际上是变化的。.

另一方面,括号将是肮脏检查重新振作起来每一,每个 $digest即使是不必了.


我目前正在构建一个大的单页应用程序(每个视图大约有500个绑定)。从{}改为严格ng-bind每一次都为我们节省了20%scope.$digest.


建议:

如果使用翻译模块,如角度平移,总是喜欢指令在括号注释之前。

{{'WELCOME'|translate}} => <span ng-translate="WELCOME"></span>

如果您需要一个过滤器函数,最好选择一个指令,它实际上只是使用您的自定义筛选器。$Filter服务的文档


角为1.3xbindonce介绍了功能。因此,您可以将表达式/属性的值绑定一次(当!=‘unDefined’时绑定。)

当您不期望您的绑定发生更改时,这是非常有用的。

用法:放置::在你装订之前:

<ul>  
  <li ng-repeat="item in ::items">{{item}}</li></ul>  <a-directive name="::item"><span data-ng-bind="::value"></span>

例子:

ng-repeat若要输出表中的某些数据,每行有多个绑定。翻译-绑定,过滤输出,在每个范围摘要中执行。


查看完整回答
反对 回复 2019-06-28
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

ng-bind{{...}}

例如,您可以:

<div>
  Hello, {{variable}}</div>

这意味着整个文本Hello, {{variable}}围住<div>将被复制并存储在内存中。

如果你做的是这样的事情:

<div>
  Hello, <span ng-bind="variable"></span></div>

只有值的值将存储在内存中,角将注册一个观察者(监视表达式),其中只包含变量。


查看完整回答
反对 回复 2019-06-28
  • 3 回答
  • 0 关注
  • 507 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信