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