我最近检查了一个用angular构建的webapp的代码,发现它是用<body>
标签上的ng-app="myModule"
指令编写的。在学习angular时,我只在<html>
标签上看到过它,正如angular文档here、here和他们的tutorial所推荐的那样。
我自己探索了一下,发现了很多问题,特别是this one和类似的this one,它们讨论了为一个页面加载多个模块。然而,这种技术与我的情况不同,因为它涉及将ng-app放在主体中的元素上,并使用手动引导来同时运行两个angular应用程序。
据我所知,在运行时,在<html>
和<body>
上使用ng-app
的应用程序没有区别。据我所知,ng-app
指定了一个angular应用程序的根,所以把它放在<body>
上会使<head>
脱离angular的范围,但我想不出这会有什么大的影响。所以我的问题是:将ng-app
放在其中一个标签上而不是放在另一个标签上有什么技术上的区别?
发布于 2013-09-03 19:38:41
我在一个开发遗留应用程序的团队中,发现最好使用div中的ng-app标记,该div用作包装器,以便将新代码与遗留代码隔离开来。
我们在开发严重依赖jqGrid和Dojo的应用程序时发现了这一点。
当我们将ng-app添加到head标签时,它会炸毁网站,但当我们使用包装器时,我们可以毫不费力地使用Angular。
发布于 2014-08-18 19:56:49
AngularJS将引导它找到的第一个ng-app!就这样。如果您有多个ng-app,它将只处理第一个。如果您想引导任何其他元素,请使用angular.bootstrap()
ng-app属性的值是使用以下命令创建的模块:
angular.module("module_name", [])
模块定义了angular的引导方式,因为与其他编程语言不同,我们没有main()方法。如果ng-app的值为空,则默认使用默认模块'ng‘。
据说它会稍微快一点,因为angular会处理ng-app所在元素中的所有元素。但我对此稍有怀疑,因为除非你有一个非常笨重的DOM,否则根本不会有明显的区别。
如果你想要这里的例子:http://noypi-linux.blogspot.com/2014/07/angularjs-tutorials-understanding.html
https://stackoverflow.com/questions/15790432
复制相似问题