Pregunta ¿Cómo se usan los prefijos de atributo "x-" y "data-" en AngularJS


Soy nuevo en Angular e intento entender qué significan los prefijos "x-" y "data-". En la documentación de las directivas (http://docs.angularjs.org/guide/directive) dice que estos prefijos harán que la directiva sea "compatible con el validador de HTML". ¿Qué significa esto exactamente?


32
2018-03-06 19:35


origen


Respuestas:


La especificación HTML5 permite atributos arbitrarios siempre que estén prefijados con datos, por ejemplo:

<div data-myattribute=""></div>

Mientras que esto sería un HTML5 no válido:

<div myattrbute=""></div>

Para obtener más información sobre los atributos de datos, échale un vistazo aquí.

En cuanto a los atributos "x-", creo que te refieres a atributos y elementos "x:", que son específicos de la validación XHTML ...

Para ampliar esto, si tuviera que (por alguna razón) usar XHTML, puede definir atributos personalizados con el espacio de nombres como tal (y aquí estoy resumiendo la esencia):

<html xmlns:x="http://sample.com/mynamespace">
<body>
   <div x:whatever=""></div>
   <x:mytag></x:mytag>
</body>
</html>

donde la URL en xmlns es realmente solo para evitar conflictos entre elementos similares. Además, se podría proporcionar una DTD para los elementos y atributos personalizados con fines de validación como parte de su declaración DOCTYPE.

* el comportamiento en los navegadores va a variar con este enfoque xmlns.

En resumen, sin embargo: Con la mayoría de los navegadores lanzados en los últimos tres años, o IE8 +, no tendrás que preocuparte por ninguna de estas cosas. Solo en situaciones muy específicas, realmente te importará.


29
2018-03-06 19:37



De la especificación de HTML5: http://www.w3.org/html/wg/drafts/html/master/single-page.html

Los nombres de atributos que comienzan con los dos caracteres "x-" están reservados   para el uso del agente de usuario y se garantiza que nunca se agregarán formalmente a   el lenguaje HTML.

También:

Para las características de nivel de marcado que están destinadas para su uso con la sintaxis HTML,       las extensiones deben estar limitadas a nuevos atributos de la forma "x-vendor-feature", dónde   vendedor es un corto       cadena que identifica al proveedor responsable de la extensión, y la función es la       nombre de la característica. Los nuevos nombres de elementos no deberían ser creados. Usando atributos para tal       las extensiones permiten exclusivamente que las extensiones de múltiples proveedores coexistan en el mismo elemento,       que no sería posible con los elementos. Utilizando el "x-vendor-feature"la forma permite   extensiones que se realizarán       sin riesgo de conflicto con futuras adiciones a la especificación.


18
2017-07-27 20:56