Page 354 - AngularJS权威教程
P. 354
334 第 24 章 揭秘 Angular
第24章
揭秘Angular
从本质上讲,在浏览器中加载AngularJS Web应用的方式与加载非AngularJS应用的方式一样。
但是,它们的运行方式略有不同。浏览器会在构建DOM元素时加载AngularJS库(如同正常加载
任意JavaScript库)。
当浏览器触发DOMContentLoaded事件时,Angular就开始工作。它首先寻找ng-app指令(更
多关于ng-app指令的信息请参考第10章)。
加载angular.js时,如果document.readyState被设置为complete,Angular也会
启动初始化。如果你想要动态连接AngularJS脚本,这个技术是有用的。
如果浏览器在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就会加载与这个指令关联的模块。
使用没有指定模块的ng-app:
<html ng-app>
</html>
使用带有指定模块的ng-app:
<html ng-app="moduleName">
</html>