AngularJS的数据双向绑定是怎么实现的

2025-02-28 09:19:14
推荐回答(5个)
回答1:

双向数据绑定意味着当 view 中有任何数据发生变化会自动地反馈到 scope 的数据上,当 scope 模型发生变化时,view 中的数据也会更新到最新的值。很显然,这需要一个监控。
事实上,AngularJS 确实在幕后为 scope 模型上设置了一个 监听队列,用来监听数据变化并更新 view 。
每次绑定一个东西到 view 上时 AngularJS 就会往 $watch 队列里插入一条 $watch,用来检测它监视的 model 里是否有变化的东西。
当浏览器接收到可以被 angular context 处理的事件时,$digest 循环就会触发。$digest 会遍历所有的 $watch 。

回答2:

AngularJS实现数据双向绑定的方式是“脏数据检查”,即你在页面上面触发的一些事件或者在scope作用域里面调用方法的时候,AngularJS就会自动对比内存中变量的值和页面上面的值,看哪个是最新的的值就按那个为标准。
可以实现双向数据绑定的方法还有:属性访问器。

回答3:

有很多方式实现双向绑定,目前AngularJS选择了dirty check。
简单来说就是给每个需要绑定的元素加个watcher,缓存下oldValue,然后定时遍历所有的watcher,比较newValue和oldValue,如果变化了做更新操作。
更多的解释网上也有很多,不过还是建议去看看这篇文章。
http://www.oschina.net/translate/easy-two-way-data-binding-in-javascript

回答4:

view层直接绑定model层 脏检查的时候更新数据 view的数据改了 model层也会变化 反之一样! ng开头的方法都会执行脏检查

回答5:

推荐你个学习网站,涵盖了web前端的各种技术,关于AngularJs讲的很易懂,http://www.runoob.com