加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

[笔记]AngularJs-$digest和$apply

发布时间:2020-12-15 01:18:45 所属栏目:C语言 来源:网络整理
导读:AngularJS通过循环($digest)检查model和view的变化实现双向数据绑定。 当一个事件被触发时,Angular会触发每一个watcher,这是我们已知的$digest循环。当我们需要强制手动运行一个循环时,需要做出一个正确的选择。 $apply 这个方法可以让你显式启动digest

AngularJS通过循环($digest)检查model和view的变化实现双向数据绑定。

当一个事件被触发时,Angular会触发每一个watcher,这是我们已知的$digest循环。当我们需要强制手动运行一个循环时,需要做出一个正确的选择。

$apply

这个方法可以让你显式启动digest循环,这意味着所有的watcher都将被检测。在北部之星一个可选的方法之后,会调用$rootScope.$digest()。

$digest

使用digest方法只在当前作用域和他的子作用域启动$digest循环,他副作用域将不会被检测也不会被影响。

总结

  • 仅当浏览器DOM事件在Angular之外被触发时使用$apply或$digest。
  • 如果只需要更新当前作用域或他的子作用域,使用$digest,防止在整个应用里运行digest循环。
  • $apply()绑定过多会引起性能问题。
  • 在Angular1.2.x以上的版本中,可以使用$evalAsync()方法,这个方法将在当前循环或下个循环中执行表达式,提高应用的性能。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读