我正在學習有關AngularJS,看看它增加了一些自己的屬性,那也不符合數據開始也不是標準的HTML標籤屬性,像這樣:AngularJS標籤屬性
<html ng-app>
或本:
<body ng-controller="PhoneListCtrl">
從哪裏來這些ng- *屬性來,是一個有效的HTML?我在哪裏可以閱讀更多關於此?
我正在學習有關AngularJS,看看它增加了一些自己的屬性,那也不符合數據開始也不是標準的HTML標籤屬性,像這樣:AngularJS標籤屬性
<html ng-app>
或本:
<body ng-controller="PhoneListCtrl">
從哪裏來這些ng- *屬性來,是一個有效的HTML?我在哪裏可以閱讀更多關於此?
嚴格地說,這些額外的屬性沒有在HTML規範中定義,因此不是有效的HTML。你可以說AngularJS提供並解析了HTML規範的一個超集。
但是,從v1.0.0rc1開始,您可以使用data- *屬性,例如<html data-ng-app>
,我相信這些屬性是有效的HTML5。 Source。
有一個AngularJS Compiler指南,其中包含有關該過程的更多信息。簡而言之; AngularJS編譯器讀取您的HTML頁面,使用這些屬性來指導它,因爲它在加載後通過javascript和HTML DOM編輯和更新頁面。
從哪裏做這些NG-*屬性來
從主ng module。 Source code。
是一個有效的HTML?
不過,屬性樣式指令可以用x-或data-作爲前綴,以使其符合HTML驗證器。見direcives documentation。
從文檔:http://docs.angularjs.org/guide/directive
<!doctype html>
<html data-ng-app>
<head>
<script src="http://code.angularjs.org/1.0.7/angular.min.js"></script>
<script src="script.js"></script>
</head>
<body>
<div data-ng-controller="Ctrl1">
These are all valid directive declarations:<br/>
<input ng-model='name'> <hr/>
<span ng:bind="name"></span> <br/>
<span ng_bind="name"></span> <br/>
<span ng-bind="name"></span> <br/>
<span x-ng-bind="name"></span> <br/>
<span data-ng-bind="name"></span> <br/>
</div>
</body>
</html>
我喜歡data-*whatever*
聲明中最好的,因爲它是兼容HTML5。
所以對我的任何角度聲明(例如ng-controller
,ng-app
,ng-repeat
等)或自定義指令和我永遠data-
前綴他們。
另一種選擇是忽略未定義的屬性名稱。如果您使用Eclipse,則可以通過轉到項目properties>>validation>>html syntax>>attributes>>ignore undefined attribute names
來設置此項。
儘管這很有用,但似乎並沒有回答這個問題。 –
爲了清楚,** yes **,'data-X'符合HTML5,因爲'data-'前綴是用於自定義屬性的。 – WhyNotHugo