Angular学习笔记(16)—揭秘Angular

当浏览器触发DOMContentLoaded事件时,Angular就开始工作。它首先寻找ng-app指令。如果浏览器在DOM中找到ng-app指令,它会为我们自动启动应用。如果没有找到这个指令,Angular期望我们自己手动启动应用。
要手动启动一个AngularJS应用,可以使用Angular的bootstrap()方法。在一些罕见的情况下手动启用应用程序是有意义的。例如,想要在某个其他库的代码运行之后,或者在运行时动态创建元素时,启动AngularJS应用。要想手动启动应用,可以像下面这样启动它:

var newElement = document.createElement("div");
angular.bootstrap(newElement, ['myApp']);

如果在DOM中没有找到ng-app指令,而且也没有手动启动应用,则AngularJS不会运行。忘记在页面中引入ng-app指令肯定会引发一些严重的问题。
bootstrap()方法只允许我们启动angular应用一次。
如果在ng-app属性中没有指定应用程序,则Angular会加载一个不带特定模块的应用。如果指定了,Angular就会加载与这个指令关联的模块。
一旦应用程序加载完成,$injector就会在应用程序的$rootScope旁边创建$compile服务。
$rootScope创建后,$compile服务就会接管它。它会将$rootScope与现有的DOM连接起来,然后从将ng-app指令设置为祖先的地方开始编译DOM。

视图的工作原理

当浏览器在标准的Web流程中获取HTML时,它会收到HTML代码并将它解析为一个DOM树。这个DOM树中的每个元素被称作DOM元素,这些DOM元素会构建一堆节点。然后浏览器负责绘制出这个DOM树的结构。
浏览器在提取脚本时(从

你可能感兴趣的:(Angular学习笔记(16)—揭秘Angular)