AngularJS的核心机制--脏检查

来源:互联网 发布:mac打字左下角 编辑:程序博客网 时间:2024/06/14 20:53

脏检查

mvvm

mvc

mvvm
m model
v view
vm view-model $scope

双向数据绑定

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

$watch

使用watchscope里面值的变化

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

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

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

当更改了scopetimeout、$interval等

自动触发一次$digest循环

$digest

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

$apply()

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

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

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

$digest()的遍历

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

1 0
原创粉丝点击