angularJs指令执行的机制==大概的三个阶段
第一阶段:加载阶段
angularJs要运行的话,需要去等待angular.js加载完成,加载完之后呢,angular就会去查找到ng-app这个指令,ng-app在每个应用里面只能出现一次,
它也就相当于我们的main方法,angularjs找到了ng-app之后,就确定了我们应用的边界在哪里。
所谓的边界,就是angularjs知道自己要管理哪一块的内容。
这样的话,angularjs才可以去启动起来,加载完成之后,就进入了第二阶段
第二阶段:编译阶段
这个阶段,angular.js会做很多的事情
第一步:首先它会去遍历dom,把整个dom结构中的所有的指令全部查找出来,然后缓存到内部的缓存里面去
第二步:会根据指令代码中的template,replace,transclue等对dom结构进行一些变换,
这时候,如果代码中存在compile函数,angluarjs也会去调用这个函数,如下是自定义的compile
不过一般我们在自定义指令的时候,是不会去自定义compile函数的,因为在调用自定义compile的时候,还要去调用内部默认的compile,否则默认的compile默认的行为就会被覆盖
第三阶段:链接阶段
链接阶段又会做些什么事情呢?
首先,每条指令的link指令都会被调用
我们在指令的编写指令代码的时候,除了可以写compile函数以外,还可以写link自定义函数,
angularjs在找到这个函数以后,angulajs也会去运行link函数,
我们知道,不要在controller或才其他地方操作dom,因为这个思想不符合angularjs的设计思想,
那么dom在哪些地方可以操作呢?我们可以在link中操作dom
那么这个link函数可以做些什么事情呢?
它可以为dom元素绑定一些事件,绑定作用域,比如双向数据绑定
指令和双向数据绑定,就是在link这个阶段运行的
以上就是angularjs指令执行的三个阶段。
以上内容了解即可。无需刻意去记忆。



angularJs指令执行的机制==大概的三个阶段的更多相关文章
- AngularJS 指令生命周期 complie link
AnguarJS指令从解析到生效一共会经历Inject.Compile.Controller加载.Pre-link.Post-link这几个主要阶段. 一.AngularJS指令执行过程 1.加载An ...
- AngularJS指令的详解
指令作为AngularJS中最为重要的部分,所以这个框架本身也是自带了比较多的的指令,但是在开发中,这些指令通常不能满足我们的需要,所以我们也是需要自定义一些指令的.指令是我们用来扩展浏览器能力的技术 ...
- angularjs指令(二)
最近学习了下angularjs指令的相关知识,也参考了前人的一些文章,在此总结下. 欢迎批评指出错误的地方. Angularjs指令定义的API AngularJs的指令定义大致如下 angula ...
- 【转】angularjs指令中的compile与link函数详解
这篇文章主要介绍了angularjs指令中的compile与link函数详解,本文同时诉大家complie,pre-link,post-link的用法与区别等内容,需要的朋友可以参考下 通常大家在 ...
- AngularJS指令进阶 – ngModelController详解
AngularJS指令进阶 – ngModelController详解 在自定义Angular指令时,其中有一个叫做require的字段,这个字段的作用是用于指令之间的相互交流.举个简单的例子,假如我 ...
- angularJS 指令解释
本文引自 http://blog.csdn.net/kongjiea/article/details/49840035 指令,很重要 AngularJS与jQuery最大的区别在哪里?我认为,表现在数 ...
- angularjs指令中的compile与link函数详解
这篇文章主要介绍了angularjs指令中的compile与link函数详解,本文同时诉大家complie,pre-link,post-link的用法与区别等内容,需要的朋友可以参考下 通常大家在 ...
- AngularJS 作用域与数据绑定机制
AngularJS 简介 AngularJS 是由 Google 发起的一款开源的前端 MVC 脚本框架,既适合做普通 WEB 应用也可以做 SPA(单页面应用,所有的用户操作都在一个页面中完成).与 ...
- AngularJs指令(一)
AngularJs应用现在越来越流行了,谷歌都与微软合作支持AngularJS2.0,这是要逆天了,说明AngularJs将来大势所趋.最近想跳槽,又重新拾起了AngluarJs(之前由于缺少项目应用 ...
随机推荐
- 【Excel】Excel根据单元格背景色求和
例:用公式计算单元格背景色为浅蓝色的数字之和 步骤一: Office 2003 Insert->Name->Define,Names in workbook输入getColor或ge ...
- iOS学习37数据处理之CoreData
1. CoreData数据库框架的优势 1> CoreData历史 CoreData数据持久化框架是Cocoa API 的一部分,首次在iOS5版本的系统中出现,它允许按照实体-属性-值模型组织 ...
- 02_Swift2基础之常量和变量+注释+分号
1. 常量和变量 常量 和 变量 把一个名字(比如 'number' 或者 'welcomeMessage')和一个指定类型的值(比如数字'10'或者字符串 ' "Hello" ' ...
- 流式大数据处理的三种框架:Storm,Spark和Samza
许多分布式计算系统都可以实时或接近实时地处理大数据流.本文将对三种Apache框架分别进行简单介绍,然后尝试快速.高度概述其异同. Apache Storm 在Storm中,先要设计一个用于实时计算的 ...
- ACM: 限时训练题解-Heavy Coins-枚举子集-暴力枚举
Heavy Coins Bahosain has a lot of coins in his pocket. These coins are really heavy, so he always ...
- HDU-统计难题
DescriptionIgnatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). Inp ...
- 移动端开发——javascript
javascript(简称js)语言在移动前端应用很广.可以说必不可少,许多效果都是和js相关的.包括现在移动端的一些框架.jqmobi.jqtouch.sencha touch.jquerymobi ...
- 【POJ2104/2761】K-th Number
Description You are working for Macrohard company in data structures department. After failing your ...
- SQL中union运算操作的理解
在SQL中,对于并运算,可以使用union关键字. 例如: SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FRO ...
- 将普通工程转为mvn标准工程(main resources)
It is sometimes required to change the default source folder working on the java project. One best e ...