它们大致相同,但有一些区别:
angular.bootstrap(document, ['TodoApp']);
如果您在页面末尾(而不是在标题中)加载脚本,这将起作用。
否则,在引导应用程序时将不会加载 DOM(不会有任何模板要编译,指令不会有任何效果)。
这个有效:plnkr
这个没有:plnkr
angular.bootstrap(angular.element("body")[0], ['TodoApp']);
和以前一样,body
用作应用程序的根。它使用了 jqLite 中不可用的选择器,因此您需要在应用程序中包含完整的 jQuery。
我不确定使用它的好处是什么body
,document
但可能与e2e 测试有关,如本评论中所述
plknr
angular.element(document).ready(function() {
angular.bootstrap(document);
});
这个实际上是在等待 DOM被加载,因此即使您在标头中包含脚本,它也会起作用。
这与 jQuery's 基本相同$(document).ready(
,但使用jqLite
's angular.element
。
在最后一个例子中,没有模块被传递给引导函数,很可能你需要声明你的主模块,除非你的应用程序只包含在全局命名空间中的控制器上。
所以最后一个选项将如下所示,以便与其他两个类似:
angular.element(document).ready(function() {
angular.bootstrap(document, ['TodoApp']);
});
plknr
我想大多数时候最安全的选择是使用最后一种方法。