Estoy trabajando en un equipo pequeño, construyendo en AngularJS y tratando de mantener algunos estándares básicos y mejores prácticas; especialmente dado que somos relativamente nuevos con Angular.
Mi pregunta se refiere a las Directivas. Más exactamente, las restrict
opciones.
Algunos de nosotros estamos usando restrict: 'E'
así tener <my-directive></my-directive>
en el html.
Otros están usando restrict: 'A'
y teniendo <div my-directive></div>
en html.
Entonces, por supuesto, puedes usar restrict: 'EA'
y usar cualquiera de los anteriores.
Por el momento no es gran cosa, aunque cuando este proyecto sea tan grande como va a llegar, me gustaría que cualquiera que lo esté mirando para entender fácilmente lo que está pasando.
¿Hay ventajas / desventajas en la forma de hacer las cosas, ya sea por atributos o elementos?
¿Hay alguna trampa que debamos conocer si elegimos un elemento sobre un atributo?
fuente
restrict es para definir el tipo de directiva, y puede ser
A
(Atributo),C
(Clase),E
(Elemento) yM
(CoMment), supongamos que el nombre de la directiva esDoc
:fuente
La opción de restricción generalmente se establece en:
Aquí está el enlace de documentación .
fuente
El elemento no es compatible con IE8 de fábrica, debe hacer un trabajo para que IE8 acepte etiquetas personalizadas.
Una ventaja de utilizar un atributo sobre un elemento es que puede aplicar varias directivas al mismo nodo DOM. Esto es particularmente útil para cosas como controles de formulario donde puede resaltar, deshabilitar o agregar etiquetas, etc. con atributos adicionales sin tener que envolver el elemento en un montón de etiquetas.
fuente
Una de las trampas que conozco es el problema de IE con los elementos personalizados. Como se cita en los documentos :
fuente
Trampa:
<my-directive></my-directive>
no funcionará en IE8 sin una solución alternativa ( https://docs.angularjs.org/guide/ie )<div data-my-directive="ValueOfTheFirstParameter"></div>
En lugar de esto:
<my-directive my-param="ValueOfTheFirstParameter"></my-directive>
Nosotros no uso de elementos HTML personalizada, ya que si este 2 hechos.
Cada directiva de un marco de terceros se puede escribir de dos maneras:
<my-directive></my-directive>
o
<div data-my-directive></div>
hace lo mismo.
fuente
2 problemas con los elementos:
Utilice atributos.
fuente
replace
atributo atrue
?