我是Angular的新手,試圖理解「x-」和「data-」前綴的含義。在指令文檔(http://docs.angularjs.org/guide/directive)中,它表示這些前綴將使指令「符合HTML驗證器」。這到底是什麼意思?如何在AngularJS中使用屬性前綴「x-」和「data-」
回答
HTML5規範允許任意的屬性,只要他們與數據 - 像這樣的前綴:
<div data-myattribute=""></div>
而這將是無效的HTML5:
<div myattrbute=""></div>
For more information on data- attributes, have a look here.
至於「x-」屬性,我認爲你的意思是「x:」屬性和元素,這些屬性和元素是XHTML驗證特有的...
爲了擴大這一點,如果你是(出於某種原因)使用XHTML,您可以定義與命名空間,像這樣的自定義屬性(我只是總結要點這裏):
<html xmlns:x="http://sample.com/mynamespace">
<body>
<div x:whatever=""></div>
<x:mytag></x:mytag>
</body>
</html>
哪裏xmlns中的URL實際上只是爲了防止類似元素之間的衝突。另外,可以將用於自定義元素和屬性的DTD作爲DOCTYPE聲明的一部分提供用於驗證目的。
*瀏覽器中的行爲會隨xmlns方法而變化。
總之,儘管:隨着過去三年中發佈的大多數瀏覽器,或者IE8 +,你都不用擔心這些事情。只有在非常特殊的情況下,你纔會真正關心。
從HTML5規範:http://www.w3.org/html/wg/drafts/html/master/single-page.html
屬性名稱以兩個字符「X-」是爲用戶代理使用保留 ,並保證永遠不會被正式添加到 HTML語言。
另外:
對於旨在與the HTML syntax使用標記級別特徵, 擴展應限制到的形式爲「
x-vendor-feature
」,其中 供應商是一個短 串的新的屬性標識負責擴展的供應商,功能是該功能的名稱 。不應創建新的元素名稱。專門爲這樣的 擴展使用屬性允許來自多個供應商的擴展共存於相同的元素上,這對於元素來說是不可能的。使用「x-vendor-feature
」表格允許 擴展名爲 而沒有與未來添加到規範衝突的風險。
我甚至可以說「x-」前綴是正確的方式如果要驗證標記,請使用角度。這實際上是數據。 來自W3C草案: 「對於標記級別的功能...擴展應限制爲'x-vendor-feature'形式的新屬性。」 帶x前綴的Ng屬性可以很好地符合此描述。 – 2013-08-11 02:06:34
+1。儘管這裏的措辭似乎是指瀏覽器供應商而不是庫/框架?無論如何,這對我來說比使用數據前綴更爲正確,因爲它比框架更具體,而不是您可能要附加的數據位(並且也遵循x-供應商草稿的前綴)。 – wbyoung 2013-10-16 01:07:53
我同意wbyoung,對法律信x-是保留爲瀏覽器,而不是擴展或框架。不過,我也認爲他們應該修改法律來包含這個用法,因爲'x-ng-feature'看起來像是一個語義上正確的約定。 – misteraidan 2014-04-23 03:07:32
- 1. 如何創建一個前綴爲'data-'的屬性?
- 2. 如何使用mshtml在IE9中使用命名空間前綴獲取屬性?
- 3. Laravel X AngularJS - 前綴/結尾斜槓
- 4. 在ElementTree中添加前綴屬性
- 5. 帶有data- *前綴或不帶的自定義屬性?
- 6. 爲什麼Core Data會使用Z前綴命名它在SQLite中創建的表和屬性?
- 7. X2JS刪除屬性前綴
- 8. 屬性'前綴'沒有值
- 9. Automapper源前綴屬性
- 10. 如何將前綴添加到x ++中的所有根屬性xml ax 2012
- 11. ActionFilterAttribute.OnActionExecuted在json正文中使用下劃線的前綴屬性
- 12. Html5和data- *屬性?
- 13. 如何在jQuery中調整「-webkit-」前綴CSS屬性?
- 14. 如何在.NET中聲明屬性的命名空間前綴?
- 15. 如何使用lxml在屬性值中設置命名空間前綴?
- 16. jQuery - 如果選擇器存在,添加屬性和前綴值
- 17. 使用goutte scrape data-屬性?
- 18. Flex中帶$前綴的屬性
- 19. html屬性中的「javascript:」前綴
- 20. Algolia在使用Magento擴展時禁用屬性前綴
- 21. 如何在spring-data-solr中使用方法名稱的get前綴?
- 22. 如何在SVG中使用data- *屬性Circle元素
- 23. 前綴中綴使用Java
- 24. 屬性data-x的jQuery html內容?
- 25. 如何使用前綴
- 26. 如何使用Spring Data Projection和Transient屬性?
- 27. 使用perl的XML :: LibXML你如何使用XML前綴而不是xmlns屬性?
- 28. Android使用命名空間作爲庫中屬性的前綴
- 29. 在屬性名稱後面使用瀏覽器前綴
- 30. 無法使BindAttribute前綴屬性在ASP.NET MVC3中工作
OP鏈接的文檔確實說'data-myattribute'和'x-myattribute'符合HTML驗證器。 – 2013-03-07 03:47:32
嗯,我不確定文檔的作者使用的驗證器是什麼......但是x屬性目前[不在規範中](http://www.w3.org/html/wg/drafts/html/master/單page.html中)。 – 2013-03-07 06:18:54
夠公平的,我試着找到更多關於'x-'的信息,但是你可以想象這個術語對Google來說是不可能的。它主要出現在諸如'x-moz-errormessage'和'x-webkit-speech'這樣的實驗性瀏覽器功能中。 – 2013-03-07 07:52:36