当前位置:首页 > 日记 > 正文

AngularJS执行流程详解

AngularJS执行流程详解

一.启动阶段

浏览器解析HTML页面,读取到angular.js的<script>标签后会停止解析后面的DOM节点,开始执行angular.js,与此同时,Angular会设置一个事件监听器来监听DOMContentLoaded事件,当Angular监听到这个事件后,Angular就启动了。

二.初始化阶段

Angular启动后,它会查找ng-app指令,然后初始化一系列必要的组件(即$injector、$compile服务以及$rootScope),接着继续解析DOM。

三.编译、链接阶段

1.Angular使用$compile服务通过遍历DOM树的方式查找带有指令的DOM元素,然后根据指令的priority优先级对这些查找到的指令进行排序。

2.之后使用$injector服务查找和收集每个指令下面的compile函数,并执行它。

3.每个节点的compile方法运行之后,$compile服务就会调用链接函数。这个链接函数为绑定了封闭作用域的指令设置监控。这一行为会创建实时视图。

4.以上所有完成后,Angular启动完成

四.运行阶段

Angular提供了自己的事件循环。指令自身会注册事件监听器,因此当事件被触发时,指令函数就会运行在AngularJS的$digest循环中。$digest循环会等待$watch表达式列表,当检测到模型变化后,就会调用$watch函数,然后再次查看$watch列表以确保没有模型被改变。一旦$digest循环稳定下来,并且检测到没有潜在的变化了,执行过程就会离开Angular上下文并且通常会回到浏览器中。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!

相关文章

Win7任务计划在哪

Win7任务计划在哪

任务计划,电脑软件,Win7任务计划是Win7系统的一个小功能,利用Win7任务计划,我们可以创建如:定时关机、定时开启某应用或者程序等等,实用性还是比较强的,不过很多网友只是听过Win7任务计划,但却不知道Win7任务计划在哪,下面本文将针对网友这个问题,…

ai怎么绘制一个可爱的梅花小鹿?

ai怎么绘制一个可爱的梅花小鹿?

绘制,小鹿,可爱,电脑软件,ai,大家知道怎么用ai素材制作之小鹿吗?下面我来教教大家。软件名称:Adobe Illustrator CS6 (AI cs6) 精简绿色中文版(32位+64位)软件大小:205MB更新时间:2014-05-111、打开电脑,接着我们新建一个名字为&ldquo;小鹿&rdqu…

怎么去掉word水印去掉word水印的两

怎么去掉word水印去掉word水印的两

方法,水印,两种,电脑软件,word,  我们在使用word办公软件时,会经常碰到一些word资料文档里面可能会有水印的存在。那么,我们该如何去除这些word水印呢?在下面就由小编给大家分享下的技巧,希望能帮助到您。去掉word水印方法一步骤一:打开要去…

取消Windows 2003关机提示的方法

取消Windows 2003关机提示的方法

提示,方法,取消,电脑软件,Windows,1、编辑组策略打开&ldquo;开始&rdquo;-&ldquo;运行&rdquo;,在&ldquo;打开&rdquo;一栏中输入&ldquo;gpedit.msc&rdquo;命令打开组策略编辑器,依次展开&ldquo;计算机配置&rdquo;&rarr;&ldquo;管理模板&rdquo;&…

在Excel中怎么使用加载宏进行规划

在Excel中怎么使用加载宏进行规划

加载,电脑软件,Excel,  Excel自带了规划求解加载项,使用该加载项可以根据用户设置的规划求解参数和约束条件来自动进行求解。以下是小编为您带来的关于在Excel中使用加载宏进行规划求解,希望对您有所帮助。在Excel中使用加载宏进行规划求解…

jquery对table做排序操作的实例演

jquery对table做排序操作的实例演

排序,操作,演示,实例,电脑软件,最近要对报表数组进行排序,在前端处理如下:首先在前台页面加载时对每行tr添加自定义的属性data-sort-field-ftime,属性值为要排序的字段的值(我的是数字比较方便):$.each(jsonarray, function(i, obj) { tropti…

bootstrap组件之导航组件使用方法

bootstrap组件之导航组件使用方法

组件,导航,使用方法,电脑软件,bootstrap,在上篇文章给大家介绍了bootstrap组件之按钮式下拉菜单小结,下面通过本文给大家介绍bootstrap导航组件的使用方法,一起看看吧!Bootstrap 中的导航组件都依赖同一个 .nav 类和ul,状态类也是共用的。改变…

详谈lastIndex对正则结果的影响

详谈lastIndex对正则结果的影响

正则,电脑软件,lastIndex,前言今天遇到一个问题,用正则表达式去检查同一个字符串时,交替返回true和false。无奈之下,重新翻了翻权威指南,发现罪魁祸首原来是lastIndex。可在控制台尝试下let reg = /[\d]/g//undefinedreg.test(1)//truereg.tes…

PS实用技巧:图层和文字不为人知的

PS实用技巧:图层和文字不为人知的

图层,文字,不为人知,详解,实用技巧,闲话不多言,本期主要讲的还是PS实用小技巧,你不知道的妙技之&ldquo;图层&rdquo;&ldquo;文字&rdquo;为了表达更加清晰直观,特意录制生成GIF图,以供直观了解。版本提示:我使用的Photoshop版本为2017 CC(其他版本…

WordPress中限制非管理员用户在文

WordPress中限制非管理员用户在文

管理员,评论,用户,文章,电脑软件,之前有网友提出,在WordPress中有没有办法实现每篇文章只允许用户评论一次?暂不说这个需求有没有用,毕竟WordPress就是给有各种需求的人用的。这个功能实现起来也比较简单,只需每次用户发表的评论进数据库之前,从…

Photoshop绘制可爱风格的漫画Q版美

Photoshop绘制可爱风格的漫画Q版美

教程,绘制,头像,风格,漫画,效果图:原图:主要过程:软件是sai,板绘,这些不用多说了,然后先根据照片,打出大概的草稿。第二步就是描出线稿啦,我描线稿用的是自己调的笔刷。线稿笔刷设置ps:右键笔刷点击设置会弹出这个,这里面的抖动修正和笔刷修正建议开5…

PHP判断手机是IOS还是Android

PHP判断手机是IOS还是Android

电脑软件,PHP,IOS,Android,本文介绍了PHP判断手机是IOS还是Android的三个小实例,要判断用户的手机是安卓的还是ios的,搜了一下相关的资料,最终获得的结果分享给大家。实例1:主要是要用到HTTP_USER_AGENT,它表示的意思是用来检查浏览页面的访问者…