angularjs的运行原理是什么?
发布于 10 年前 作者 yakczh 7634 次浏览 最后一次编辑是 8 年前 来自 问答

是dom节点根据对应的标签注册很多model层的观察者,如果数据更新了,就同时通知dom节点更新,我猜测是这样,有没有人写个简单的例子,关于双向绑定的实现

6 回复

其实大部分时候是单向的,用到双向的首先你的元素是可编辑的

我觉得就是$digest 循环吧

数据更新的时候可以想办法探测到一个事件, 操作是一个赋值或者数组操作之类的 通过判断这个操作具体的内容, 可以知道做了什么, 然后在 DOM 上做对应的操作 DOM 上和数据上的操作通过 data binding 上写的内容进行关联… 大体的意思是这样

可以和 JSON Patch 对比一下, MVVM 的检查得到的是每个操作, JSON Patch 是得到一组操作

敢看的话可以看看这个, 简单点的 MVVM: https://github.com/yyx990803/vue/

我只想说这个都写不出就不要说自己做过前端

@jiyinyiyong 这个貌似不支持ie8

简单看了一下代码 parser 负责解析模板里的标签和指令 observer 负责添加任务和通知 加载页面以后,通过解析出标签里的derective 然后提前注册事件 好象是通过 _.nextTick(flush) 来执行刷新的

observer里面有个Deps没看明白,是不是处理动态添加的元素的事件,比如原来页面上只有一个button 通过点击button以后 添加了一个数据项 这个数据项可能还有有新的修改,和删除的事件处理 ,depes就是来处理这个的吧?

进展真快, 我没看那么深, 不过你可以直接到微博上询问作者: http://weibo.com/u/1761511274?topnav=1&wvr=6&topsug=1

回到顶部