ng-app在html标签中的位置

时间:2015-05-14 17:20:40

标签: javascript html angularjs

我是AngularJS的新手。我的讲师说ng-app可以在html,body,div标签等中使用。我的问题是,如果ng-app可以在html标签和body标签中使用,如果我在html标签而不是body标签中使用它有什么用处? 我的意思是,head标签是body和html的中间部分。当我使用html标签时,头标签是否有任何影响原因。希望我的问题很明确。

3 个答案:

答案 0 :(得分:6)

你将ng-app放在body标签上的html标签的原因是因为你想使用angularjs操纵头部和身体内部的东西。这是一个例子:

<html ng-app="MyApp">
<head>
  <meta charset="utf-8">
  <title ng-bind="'Title - ' + title"></title>
  <link rel="stylesheet" href="/css/style.css" />
</head>
<body>
...

注意标题中我有一个ng-bind,这样我就可以使用变量名title来更改用户所在网页的标题。标题将始终为标题 - what ever link their on在app.js中,我将title var设为全局变量。这只是将ng-app放在html标签而不是body中的一个原因。

答案 1 :(得分:5)

没有。 ng-app <head>scope没有影响,除非您打算这样做。它应该添加到您应用的html元素,根元素body

大部分时间最好在head代码上使用它,除非您想要更改title中的内容,例如title。对于ng-app的动态值,应将<html>添加到public static class CustomTranslate { public static string Text(string key) { if (Sitecore.Context.PageMode.IsPageEditorEditing) { string val = String.Empty; Item currentItem = Context.Database.GetItem(ResourcesController.ItemLookUp()[key]); if (currentItem != null) { val = FieldRenderer.Render(currentItem, "Phrase"); } return val; } else return Sitecore.Globalization.Translate.Text(key); } }

答案 2 :(得分:3)

是的,如果您将ng-app放在<html>标记

中,会有一些好处
<html>
    <head>
        <title></title>
    </head>
    <body>

    </body>
</html>

如果你把它放在html中那么你可以控制html标签之间的所有东西,这意味着所有html都可以使用angularjs进行操作,对于 EX 你可以更改标题。

但如果你把它放在<body>中,那么你就失去了<title><head>标签内的某些东西的控制权,你可以只控制<body>标签里面的内容

这是NG-APP

的DOC
  

使用此指令自动引导AngularJS应用程序。 ngApp指令指定应用程序的根元素,通常放在页面的根元素附近 - 例如在&lt; body&gt;上或者&lt; html&gt;标签