码迷,mamicode.com
首页 > 其他好文 > 详细

angular(24)---揭秘Angular

时间:2017-03-21 12:21:12      阅读:194      评论:0      收藏:0      [点我收藏+]

标签: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循环中。

angular(24)---揭秘Angular

标签:dom   移动   document   应用   事件监听器   解析   ges   com   load   

原文地址:http://www.cnblogs.com/lywh/p/6593562.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!