AngularJS的核心机制--脏检查

脏检查

mvvm

mvc

mvvm
m model
v view
vm view-model $scope

双向数据绑定

监听js里面值的变化:写一个循环执行的代码取一段时间去取一下值,看看变了没有
1.房贷计算器 车贷计算器
2.购物车
3.时间\人数
4.贵金属交易 有盘的这种,数据在实时变化的

$watch

使用 watch scope里面值的变化

AngularJS是如何知道什么时候触发$watch?又如何取触发?

  • 如果你是作者怎么办
    找一个函数来循环去检查scope中的数据是否发生了变化,
    发现有变化去更改相应的值

  • 这个函数就是 —-> scope. digest()

当更改了 scope timeout、$interval等

自动触发一次$digest循环

$digest

digest使 watch的回调函数中并没有改变任何model。
如果 watch scope
$digest()最多迭代10次

$apply()

digest使AngularJS digest(),
而是调用 scope. apply(),然后 scope. apply()调用 rootScope. digest()

什么时候需要我们手动调用$apply()方法?

不在AngularJS的控制范围内去修改 scope interval和setInterval

$digest()的遍历

并从$rootScope开始遍历(深度优先)检查数据变更。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值