Según la definición que da Angular: las directivas son marcadores sobre los elementos del DOM (como los atributos, los nombres de elementos o etiquetas, o las clases CSS) que indican al compilador HTML de Angular ($compile) que adjunte un determinado comportamiento a dicho elemento del DOM o incluso que lo transforme por un bloque completo de contenido.
Por clarificarlo aún más, las directivas permiten transformar el aspecto y comportamiento del código HTML por otro que definamos nosotros. En Ionic, todas las etiquetas que empiezan con ion- son directivas de Angular que tienen un comportamiento y un aspecto asociado. Por ejemplo, la etiqueta:
<ion-list>
Esta etiqueta se procesa mediante una directiva de Angular y genera el código y comportamiento correspondiente a un listado. Y para que esto funcione, en el código de Ionic hay una directiva que está configurada para gestionar cualquier elemento con el nombre ion-list. El código sería el siguiente:
En este código hay muchos conceptos nuevos, pero de momento solo nos interesa centrarnos en algunos aspectos clave. La línea restrict: 'E' indica si la directiva se refiere a un atributo, a un elemento o una clase CSS. La propiedad rectrict puede tener los siguientes valores:
'A' – La directiva se refiere solo a nombres de atributos.
'E' – La directiva se refiere solo a elementos (los nombres de las etiquetas).
'C' – Se refiere al nombre de una clase CSS.
'AEC' – Estas letras se pueden usar de forma combinada para por ejemplo referirnos a la vez a atributos, elementos y clases.
En el ejemplo el nombre de la directiva indica ionList, pero Angular lo transformará y procesará tanto el nombre ionList como ion-list. Otro ejemplo, si creamos una directiva para ionTab se tendrá en cuenta tanto ionTab como los elementos con nombre ion-tab.