标签:dom 移动 document 应用 事件监听器 解析 ges com load
当浏览器触发DOMContentLoaded事件时,Angular就开始工作,它首先寻找ng-app指令。
视图工作原理:
浏览器在提取脚本时,会暂停DOM解析并等待脚本取回。
当angular.js被取回时,浏览器会执行它,同时设置一个监听器来监听浏览器的DOMContentLoaded事件。
1、编译阶段
$compile服务会遍历DOM树并搜集它找到的所有指令,然后将所有这些指令的链接函数合并为一个单一的链接函数。然后这个链接函数会将编译好的末班链接到$rootScope中
如果浏览器在DOM中找到ng-app指令,它会为我们自动启动应用。如果没有找到这个指令,Angular期望我们自己手动启动应用。
手动启动应用:
var newEle = document.createElement("div");
angular.bootstrap(newEle,[‘myapp‘]);
如果在ng-app属性中没有指定应用程序,则Angular会加载一个不带特定模块的应用。如果指定了,Angular就会加载与这个指令相关联的模块。
2、运行时
在标准的浏览器流程中事件循环会等待事件执行(比如鼠标移动,点击,按键等),当这些事件发生时,他们会放到浏览器的事件队列中。如果有哦函数处理程序对事件做出响应,浏览器就会将event对象作为参数来调用这些事件处理程序。
ele.addEventListener(‘click‘,function(event){});
angularJS中对事件循环做了一点增强,并且Angular还提供了自己的事件循环。指令自身会注册事件监听器,因此当事件被触发时,指令函数就会运行在AngularJS的$digest循环中。
标签:dom 移动 document 应用 事件监听器 解析 ges com load
原文地址:http://www.cnblogs.com/lywh/p/6593562.html