我应该使用哪种方法手动引导我的AngularJS?

前端之家收集整理的这篇文章主要介绍了我应该使用哪种方法手动引导我的AngularJS?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我看到以下:
angular.bootstrap(document,['TodoApp']);
angular.bootstrap(angular.element("body")[0],['TodoApp']);

还有AngularJS文档提到这,我不是真的理解。

angular.element(document).ready(function() {
     angular.bootstrap(document);
   });

这些方法有什么区别吗?特别是从Angular docs做的最后一个方法是什么?是否比其他更好使用?

它们大致相同,有一些区别:
angular.bootstrap(document,['TodoApp']);

如果你的脚本加载在页面的结尾(而不是标题),这将工作。

否则,在启动应用程序时不会加载DOM(将不会有任何模板要编译,指令将不会有任何效果)。

这一个工作:plnkr

这一个不:plnkr

angular.bootstrap(angular.element("body")[0],['TodoApp']);

和以前一样,使用body作为应用程序的根。它使用了一个在jqLit​​e中不可用的选择器,因此您需要在应用程序中包含完整的jQuery。

我不知道什么是使用身体而不是文档的优势,但可能有关于e2e测试,如解释在comment

plknr

angular.element(document).ready(function() {
  angular.bootstrap(document);
});

这个实际上等待DOM被加载,所以即使你在脚本中包含你的脚本,它也会工作。

这基本上与jQuery的$(document).ready(但是使用jqLit​​e的angular.element)相同。

在最后一个例子中,没有模块被传递给引导函数,很可能你需要声明你的主模块,除非你的应用程序只包含全局命名空间中的控制器。

所以最后一个选项将像下面,以便类似于其他两个:

angular.element(document).ready(function() {
  angular.bootstrap(document,['TodoApp']);
});

plknr

我猜,大多数时候最安全的赌注是使用这最后一种方法

原文链接:https://www.f2er.com/angularjs/146067.html

猜你在找的Angularjs相关文章