2014-01-14 18 views
3

在AngularJS中使用ng-app时发现:ng-app将用于定义根元素作为应用程序自动引导。AngularJS中的ng-app V/S data-ng-app

在某些应用中,它被用作data-ng-app

在以下两种声明中是否有区别?如果是的话&如果否,那么哪一个是重要的,为什么?

<body ng-app> 
    <p>{{ 1 + 2 }}</p> 
</body> 

2.

<body data-ng-app> 
    <p>{{ 1 + 2 }}</p> 
</body> 
+0

[ng-app vs data-ng-app有什么不同?](http://stackoverflow.com/questions/16589853/ng-app-vs-data-ng-app-what - 这是区别) – Yoeri

+0

[ng-app和data-ng-app有什么区别?](http://stackoverflow.com/questions/16184428/what-is-the-difference-between -ng应用内 - 和 - 数据-NG-APP) –

回答

4

均很相同,除了一个事实,如果你希望你的模板/代码遵循HTML标准并遵循最佳实践。使用data-ng-app。

这是官方documentation语录:

“最佳实践:尽量使用短划线分隔的格式(例如NG绑定的ngBind)如果你想使用的HTML验证工具,您可以改用。以数据为前缀的版本(例如ngBind的data-ng-bind)。上面显示的其他表单由于遗留原因被接受,但我们建议您避免它们。“

希望能回答你的问题。

干杯!

1

NG-应用程序不严格有效的HTML。 自定义属性应该以数据为前缀有效。

因此,angular添加了这种语法,以便用户仍然可以使用有效的html。 (Knockout也使用数据属性。) 功能上完全没有区别。

来源: w3.org - custom data attributes

0

ng-app和data-ng-app都相似,它们之间的唯一区别是有时候HTML验证器会在使用ng-app的时候显示错误。所以你可以使用data-ng-app。

注意:x-ng-app也具有相同的属性。您也可以使用x-ng-app,而不是使用data-ng-app。