4. ¿Qué es una Directiva?
4
Las directivas es lo que hace diferente a
AngularJS
Permiten encapsular funcionalidad en puro html.
5. Razones para escribir directivas
5
Necesidades especiales
Imaginen poder usar este código para compartir un
mismo formulario en cualquier parte de su
aplicación
6. Razones para escribir directivas
6
Encapsular un plugin de otra libreria
La directiva no existe
Las directivas que existen no cumplen con las
necesidades.
8. Valores de las propiedades
8
Propiedad Valor
restrict Puede ser A,E,C y M que significan
attribute, element, class, o comment
scope Cada subpropiedad puede tener cualquiera de estos 3
valores:
•@: el valor es de un solo sentido
•=: el valor es de dos sentidos
•&: guarda una referencia a una función o expresión
template La base para escribir el código que usará la directiva
replace Boolean que indica si se debe reemplazar el html original
por el html generado por el template
transclude Indica si se debe preservar el contenido de la declaración
de la directiva en el html original, se usa en conjunto con
ng-transclude
controller La controladora que se usara para darle ambito al template,
no siempre es necesario
9. Valores de las propiedades
9
Propiedad Valor
requires Indica si una directiva depende de otra
link Función que realiza la configuración inicial de la directiva.
Recibe cuatro parametros:
function link(scope, iElement, iAttrs, controller)
•scope: indica el objeto creado por la propiedad scope.
•iElement: se refiere al objeto base de la controladora. Este
vienen encapsulado en jqLite o Jquery (si es que se incluyo
en el proyecto)
•iAttrs: los atributos que se asignaron al html original de la
directiva declarada
•Controller: el controller de la directiva padre. Solo cuando
se ha establecido la propiedad requires
10. Jerarquía de scopes
10
Al usar directivas, se crean nuevos scopes, o se
heredan los scopes padres.
Si al definir la directiva, no se usa la propiedad
scope, la directiva crea un nuevo scope que
hereda todas las propiedades del scope de la
controladora que contiene a la directiva.
Al momento de usar la propiedad scope, se
pierde toda conexión con el scope padre, y se
genera un scope independiente para la directiva.
11. Usando $watch
11
El método $watch (forma parte del scope) sirve
para verificar cambios en alguna propiedad del
scope.
La sintaxis es:
$scope.$watch(‘propiedad’, function(value){ });
La funcion suscrita es la forma de realizar los
cambios necesarios ante un cambio en la
propiedad suscrita
Se puede usar para verificar cambios en
propiedades de la controladora padre inclusive.