2013-06-17 12 views
14

Documentazione AngularJS saysOptionally the directive can be prefixed with x-, or data- to make it HTML validator compliant..Quali sono i vantaggi dell'utilizzo dei dati anziché del prefisso x per gli attributi personalizzati?

Esempio di marcatura:

  1. nessun prefisso: <input ng-model="name">
  2. data-: <input data-ng-model="name">
  3. x-: <input x-ng-model="name">

Il prefisso x- è più veloce da digitare rispetto data-, ma i tutorial ho visto usato senza prefisso o data-, quindi la mia domanda è: ci sono motivi per cui potrei voler usare data- anziché x-?

risposta

11

Il vantaggio di utilizzare un prefisso data- piuttosto che un prefisso x- è che data- prefissi sono garantiti per rimanere a disposizione di autori come gli pare, mentre un prefisso x- potrebbe un giorno essere usato per uno scopo specifico del browser, possibilmente in conflitto con il tuo. Si noti che x- non sono conformi in base a HTML5.

+0

Ma sono conformi all'HTML 5.1 –

+4

@richremer, no, la versione 11 agosto 2013 di [HTML 5.1 Nightly] (http://www.w3.org/html/wg/drafts/html/master/) dice ancora 'x -' non deve essere usato nel documento e aggiunge una nota esplicita che non sono conformi. –

+0

+1 Per il riferimento preciso del collegamento;) grazie! –

8

data- è un standardized partof the HTML5 spec. Semanticamente è il modo migliore per andare.

+3

Viene fornito anche con implementazioni DOM specifiche a cui non si ha accesso con prefissi non standard. – BoltClock

+0

Per definizione, tali attributi non hanno una * semantica * definita. –

+0

Dalla [specifica] (http://www.w3.org/html/wg/drafts/html/master/dom.html#embedding-custom-non-visible-data-with-the-data-%2a- attributi), "Gli attributi dei dati personalizzati sono destinati a memorizzare i dati personalizzati privati ​​della pagina o dell'applicazione, per i quali non esistono attributi o elementi più appropriati." Molto più semantico (vale a dire _mangoso) per usare un 'data-attr' per dati personalizzati piuttosto che usare' x-'o qualsiasi altra cosa. –

0

Per evitare conflitti tra gli attributi dell'applicazione e gli attributi futuri che potrebbero essere definiti in HTML, w3.org ha definito e normalizzato uno schema specifico, l'attributo data-*. Vedi the norm.

Usa si

  • per ridurre il rischio di incompatibilità
  • di lasciare che altre programmatori e strumenti riconoscono che quegli attributi contengono i dati specifici dell'applicazione

Inoltre, utilizzando l'attributo di dati normalizzati consente di utilizzare la proprietà element.dataset e alcune librerie, ad esempio jQuery, fornire specifiche utilità.

Problemi correlati