我应该使用哪种方法手动引导我的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 我猜,大多数时候最安全的赌注是使用这最后一种方法。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |