angular的工作原理

2017-11-13  本文已影响0人  A你叫阿钧
angular应用和普通的html一样,只是在head部分多加入了angular脚本.当html文件被取回后,等到angular.js脚本被取回的时,浏览器会立即执行angular.js脚本,同时angular会设置一个时间监听器来监听DOMContextLoaded事件,现在就是angular登场的时候了.
    当angular检测到DOMContextLoaded事件时,angular会查找我们html中的ng-app指令,然后创建运行需要的组件,即$injector,$compiler和$rootscope,这时就会开始解析dom树了.angular利用compile指令,会查找DOM树中的各种指令,并将每个指令的scope绑定到controller的scope中,然后链接到$rootscope中.
在DOM解析的过程中,指令可以式DOM树属性,名称等.当检测到指令时,angular同时会根据优先级排序这些指令.使用我们的$injector和$compiler来执行该指令,同时,当我们的指令中含有template模板时,angualar会生成相应的内联模板.每个节点的$compiler执行完成后,会调用链接函数,这个链接函数就会监视我们dom中的指令了.这样就有了实时视图了.

DOMContextloaded事件是在DOM解析完成之后,还未加载资源之前被触发的。window.onload事件是在所有的DOM解析以及资源获取完成之后才触发的。
上一篇下一篇

猜你喜欢

热点阅读