angular1 执行流程
来源:互联网 发布:2016做淘宝客 编辑:程序博客网 时间:2024/06/05 08:29
1.用户请求起始页 index.html,加载所有的js文件, angular建立了一个全局的angular对象,只是单纯的angular库被导入,和整个框架没有关系。
2. 当DOM树建立完成后,如果index.html中某个标签有ng-app属性,angular就会进入引导过程。
---- 在多数情况下,我们使用ng-app进行自动引导,但是当存在多个ng-app时,angular只会自动引导第一个ng-app。 这时候我们可以使用bootstrap方法进行手工引导。
angular.bootstrap(element,[modules],[config]);
---- element 为应用程序的根,等同于自动引导时ng-app的位置
---- [modules] 引导时需要导入的模块,等同于ng-app = "myApp"时指定的模块
---- [config] 引导配置项
注意:bootstrap必须是在其element元素所指向的dom数加载完毕后才能使用。 可以使用angular.element(element)获取document元素,并在其加载完毕后再执行相关的操作。
angular.element(document).ready(function() {angular.bootstrap(document.body,["myApp"],[]);});
3. 当angular进入引导状态后(这个过程让angular从一个库转变成了一个框架):
3.1 引导第一步: 在ng-app(或者是bootstrap方法手工引入的模块)处用injector()创建一个注入器,然后把这个注入器存入了根对象的data里
var injector = angular.injector(["ng","myApp"]);angular.element(document).data("$injector",injector);3.2 引导第二步: 创建根作用域 $rootScopr, 如果是自动引入,则ng-app对应根作用域,否则bootstrap指向的element对应根作用域
angular.element(document.body).data("$rootScope"); 可以查看这个根作用域对象
3.3 引导最后一步: 创建dom子树,以ng-app或者bootstrap的element所在节点进行dom子树编译
关于编译:$compile是angular的一个内置服务,它负责遍历dom树来匹配指令。directive用于告诉$compile将特定的行为绑定到DOM。
关于指令匹配:指令匹配的规范化:1.去除前缀-x或者-data 2.以:-_,为分隔符的,切分并且随后的单词首字母大写 3.重新拼接单词
- angular1 执行流程
- Angular1
- angular1
- 执行流程
- angular1基础
- angular1资源
- Angular1 笔记
- WebWork执行流程
- 控制执行流程
- 浅谈Webwork2执行流程
- PsLookupProcessByProcessId的执行流程
- MFC应用程序执行流程
- AbstractFormController执行流程
- MFC 程序执行流程
- ssh执行流程
- vc_mfc_执行流程
- classloader执行流程分析
- JSP基本原理,执行流程
- servlet中纠错
- 星期判断
- Asteroids 二分图
- Python进阶06 循环对象
- git的简单运用
- angular1 执行流程
- Wordpress博客首页能打开 子页打不开解决办法
- jq操作select下拉列表,单选框radio,多选框
- 重装系统
- char-varchar
- jQueryValidationEngine
- MySQL(一)-存储引擎
- .net core centos7 nginx Supervisor
- HDU 1215 七夕节