2014-01-14 22 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。