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

Mat*_*vis 103 angularjs

我最近审查了使用angular构建的webapp的代码,发现它是使用ng-app="myModule"放在<body>标签上的指令编写的.在学习的角度,我只看到过用在<html>标签,所推荐的角文档在这里,在这里,并在他们的教程.

我这个研究我自己了一下,发现做题,尤其是这一次,同样这一块,即讨论加载多个模块的页面.但是,这种技术与我的情况不同,因为它涉及将ng-app放置正文中的元素上,并使用手动引导来同时运行两个角度应用程序.

据我所知,运行时与ng-appon <html>或者之间没有区别<body>.据我所知,ng-app指定一个角度应用程序的根,所以将它放置在<body>会削减<head>角度的范围,但我想不出这会影响事物的任何主要方式.所以我的问题是:放置ng-app其中一个标签而不是另一个标签之间有什么技术差异?

Har*_*rev 144

你放的地方没有什么大不同ng-app.

如果你把它放在<body>那么你有一个较小的AngularJS范围,稍微快一些.

不过,我已经使用ng-app<html>的操纵<title>.

  • 标题.这才是真正的原因. (12认同)
  • 我的意思是__slightly__更快.它很小.更小的范围意味着AngularJS要查找指令的元素更少.如果您有大量的Open Graph元元素,例如它可能会产生很小的影响. (10认同)
  • @ Sean_A91如果你有整个页面由AngularJS运行,那么使用Angular更有意义.它更加一致,增加了可维护性,您也可以在页面体中重用标题模型. (3认同)
  • 我只想用简单的javascript来改变标题. (2认同)

Pet*_*nan 21

我是一个正在研究遗留应用程序的团队,并且发现最好在div中使用ng-app标记,该div用作包装器以将旧代码与遗留代码隔离开来.

我们在处理严重依赖jqGrid和Dojo的应用程序时发现了这一点.

当我们将ng-app添加到head标签时,它会炸毁网站,但是当我们使用包装器时,我们可以使用Angular而没有任何问题.

  • 这是一个很好的例子,我区分Angular的三个用例:"单页面应用程序","独立"(即接管页面但使用普通链接到其他页面),以及"mixin"(即只是一点点)这页纸).您已经准确描述了mixin的用法,在这种情况下,完全同意的ng-app应该仅适用于mixin适用的div.但是,对于独立或SPA使用,我认为它应该在<html>上. (14认同)