Ruby's Louvre

每天学习一点点算法

导航

angular与avalon对复杂对象的修改

angular的实现

avalon的实现

从调用来看,angular由于不能直接使用setTimeout,需要hack一下,并且它并不够智能,需要你$digest。说明它本身没有对子对象的监控,只有用户手动$digest,它才匆匆忙忙把自己修改一遍,然后通知视图更新。

avalon则是一开始就把用户传来的东西改造一遍,它身上每一个毛孔(除非你将它设置为不可监控的)都转为监控属性,计算属性与监控数组,当数据发生改动时就立即调用视图刷新属性。对于这种深层套嵌的对象,如果是中间的对象发生变化,这准确来说被替换了,这个新的子对象也立即被改造,并且涉及它的那个元素会重新打回原形,重新被扫描,被绑定。

posted on 2013-11-17 09:20  司徒正美  阅读(2351)  评论(1编辑  收藏  举报