我爱编程

我理解的angular双向绑定

2018-06-14  本文已影响0人  monkeybroro

所谓双向,是指从model到view和从view到model。

View -> model相对直观,通过在view上注册事件来实现,比如click事件,type事件等等

Model -> view 是通过脏检测机制实现,阐述如下:

每个model在声明时(通过{{}}或者手动添加watch)会被注册到$watch列表中,以便将来变化时监测到来更新view。然后当特定事件发生时(由angular管理的指令如ng-click. $timeout, $ajax等回调),angular会通过$digest(angular不直接调用$digest,而是调用$apply)轮询所有watcher直至没有变化或者达到上限十次。

当这种变化由于在angular框架外发生时将不会被捕获(比如通过setTimeout),此时也可以通过$apply手动触发cycle。

https://stackoverflow.com/questions/15112584/how-do-i-use-scope-watch-and-scope-apply-in-angularjs/15113029#15113029

https://www.sitepoint.com/understanding-angulars-apply-digest/

上一篇 下一篇

猜你喜欢

热点阅读