HEAD与BODY中的AngularJS

Cad*_*iel 72 html5boilerplate angularjs

在所有AngularJS示例中,Angular库都放在文档的HEAD标记中.我有一个基于HTML5 Boilerplate布局的现有项目.这定义了JS库应该放在</BODY>标记之前的DOM的最底部.

AngularJS需要放在HEAD中吗?

Mar*_*cok 77

AngularJS不需要放在HEAD中,实际上你通常不应该这样做,因为这会阻止加载HTML.

但是,当您在页面底部加载AngularJS时,您将需要使用ng-cloakng-bind来避免"未编译内容的闪存".请注意,您只需在"index.html"页面上使用ng-cloak/ng-bind.当在初始页面加载后使用ng-include或ng-view或其他Angular构造来引入其他内容时,该内容将在Angular显示之前进行编译.

另请参见/sf/answers/985320311/

  • 这似乎是一个非常奇怪的建议(即使它是正式的),因为你必须自己定义一个CSS规则,即使它将被脚本加载.冗余!对于大多数Angular应用程序,在Angular加载之前加载HTML实际上是有意义的 - 无论如何没有Angular,正文中的标记通常是无用的. (14认同)
  • 鉴于angular.js文件添加了`ng-cloak`样式规则(实际上隐藏了),这还不会给出未编译内容的闪存吗? (2认同)
  • @StuCox,是的,但在上面引用的SO答案中,它显示了您可以自己包含哪些CSS样式以避免问题. (2认同)

yer*_*ips 40

Google群组中的这一个答案给了我完美的见解(缩写):

这实际上取决于您的目标网页的内容.如果大多数是静态的,只有少量的AngularJS绑定,那么我同意,页面的底部是最好的.但是如果是完全动态的内容,你想加载AngularJS ASAP [在头部].

因此,如果您的内容大部分是通过Angular生成的,那么ng-cloak只需在头部包含Angular,就可以节省额外的CSS和指令.

https://groups.google.com/d/msg/angular/XTJFkQHjW5Y/pbSotoaqlkwJ