ng-app指令的放置(html vs body)

我最近回顾了用angular构build的webapp的代码,发现它是用放在<body>标签上的ng-app="myModule"指令编写的。 在学习angular的时候,我只看到它在<html>标签上使用,正如这里的angular度文档所推荐的, 在这里和他们的教程中 。

我已经对自己的这一点进行了探索,发现了一些问题,尤其是这一个 ,同样也讨论了为一个页面加载多个模块。 然而,这种技术与我的情况有所不同,因为它涉及将ng-app放置主体的元素上,并使用手动引导同时运行两个angular度应用程序。

就我所知,在运行时,在<html><body>上使用ng-app的应用程序没有区别。 据我了解, ng-app指定了一个angular度应用程序的根目录,因此将它放置在<body>会将<head>从angular度范围中删除,但我想不出任何主要的方式会影响事物。 所以我的问题是:将ng-app放在其中一个标签而不是另一个之间的技术区别是什么?

你放ng-app地方没有太大的区别。

如果你把它放在<body>那么对于稍微一点的 AngularJS来说,它的范围更小。

但是我在<html>上使用了ng-app来操作<title>

我在一个工作在一个遗留应用程序的团队,发现最好在一个div中使用ng-app标签作为包装来从遗留代码中隔离新代码。

我们在依靠jqGrid和Dojo的应用程序上工作时发现了这一点。

当我们将ng-app添加到head标签时,它会将站点炸毁,但是当我们使用包装时,我们可以使用Angular而不会出现任何问题。

AngularJS将引导它发现的第一个ng-app! 而已。 如果你有多个ng-app,它只会处理第一个。 如果你想引导任何其他元素使用angular.bootstrap()

ng-app属性的值是一个使用下面的模块创build的:

 angular.module("module_name", []) 

一个模块定义了angular度将如何引导,因为我们没有一个main()方法不像其他编程语言。 如果ng-app的值为空,那么它默认使用默认模块“ng”。

据说稍微快一点,因为angular会处理ng-app所在元素内的所有元素。 但是我怀疑有一部分是因为这个差别根本不明显,除非你有一个非常笨重的DOM。

如果你想在这里的例子: http : //noypi-linux.blogspot.com/2014/07/angularjs-tutorials-understanding.html