我看到以下:
angular.bootstrap(document,['TodoApp']); angular.bootstrap(angular.element("body")[0],['TodoApp']);
还有AngularJS文档提到这,我不是真的理解。
angular.element(document).ready(function() { angular.bootstrap(document); });
它们大致相同,有一些区别:
原文链接:https://www.f2er.com/angularjs/146067.htmlangular.bootstrap(document,['TodoApp']);
否则,在启动应用程序时不会加载DOM(将不会有任何模板要编译,指令将不会有任何效果)。
这一个工作:plnkr
这一个不:plnkr
angular.bootstrap(angular.element("body")[0],['TodoApp']);
和以前一样,使用body作为应用程序的根。它使用了一个在jqLite中不可用的选择器,因此您需要在应用程序中包含完整的jQuery。
我不知道什么是使用身体而不是文档的优势,但可能有关于e2e测试,如解释在comment
angular.element(document).ready(function() { angular.bootstrap(document); });
这个实际上等待DOM被加载,所以即使你在脚本中包含你的脚本,它也会工作。
这基本上与jQuery的$(document).ready(但是使用jqLite的angular.element)相同。
在最后一个例子中,没有模块被传递给引导函数,很可能你需要声明你的主模块,除非你的应用程序只包含全局命名空间中的控制器。
所以最后一个选项将像下面,以便类似于其他两个:
angular.element(document).ready(function() { angular.bootstrap(document,['TodoApp']); });
我猜,大多数时候最安全的赌注是使用这最后一种方法。