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