SlideShare a Scribd company logo
1 of 33
Conceptos Prácticos 2


Directivas II



Explicando la Magia



Eventos



Trucos en Angular
4
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
5
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

6


Las directivas se pueden usar
incrementar la reusabilidad del codigo
◦ Ejemplo:
◦ http://codepen.io/scyrizales/full/egdsB

para


Las directivas se pueden usar para
implementar el doble binding entre Angular y
componentes de terceros
◦ Ejemplo:
◦ http://codepen.io/brunoscopelliti/full/zIstF
9




Cada vez que cambia el scope, se actualiza la
vista.
Cada vez que un “major event” sucede en la
aplicación, y luego de que sucede, se ejecuta
una operación “digest” y se actualiza el scope

10


Entradas de usuario:
◦ Mouse, keyboard, etc.



Eventos de Navegador:
◦ timeout, blur, etc.



Llamadas Ajax:
◦ json, templates, etc…

11






$digest es un metodo interno que realiza la
verificación de los cambios entre la vista y el
scope y hace las respectivas actualizaciones al
scope
$apply sirve para llamar desde fuera al $digest.
Cuando usamos otras librerias externas, es
necesario llamar a $apply
$$phase es un indicador de si esta corriendo un
$digest. Debemos tenerlo en cuenta para no
aplicar $apply porque nos dará un error.
12




angular.element(domElement).scope()
Sobre este scope, podemos aplicar las
funciones $apply y $digest.

13


Para evitar los problemas de usar el $apply
podemos crear esta función en el rootScope

14


Se basan en 3 funciones
◦ $emit
◦ $broadcast
◦ $on

16






Desde el lugar donde se tome el punto de
referencia, hay dos cadenas de herencias
Esto se cumple para las controladoras y las
directivas
Depende de hacia donde nos queramos
comunicar hay un método distinto.

17






Envia un evento hacia arriba en la cadena de
scopes
Va desde el punto de origen, hacia el
rootscope
Una directiva la puede usar para comunicarse
con la controladora padre.

18






Envia un evento hacia abajo en la cadena de
scopes
Va desde el punto de origen, hacia el
rootscope
Una controladora la puede usar para
comunicarse con controladoras hijas o
directivas.

19




Permite escuchar un evento
listenerFn es una funcion con el siguiente
formato:
◦ function(event, args...)



The event es un objeto Event que tiene varias
propiedades

20










targetScope - {Scope}: scope Origen de donde
fue $emit-ido o $broadcast-eado.
currentScope - {Scope}: el scope en el que se
llama la función $on.
name - {string}: nombre del Evento.
stopPropagation - {function=}: llamar función
stopPropagation cancelara toda posible
propagación (solo para eventos que
fueron $emit-idos).
preventDefault - {function}:
calling preventDefault sets defaultPrevented fl
ag to true.
defaultPrevented - {boolean}: true
if preventDefault was called.
21




Se puede inyectar el rootScope en una
controladora o directiva para poder utilizar el
$broadcast como un event hub global
Lo ideal seria encapsularlo en un servicio para
poder inyectarlo a voluntad sin exponer las
demas funciones del rootScope

22








Refactorizar el ejemplo del carrito
Crear una directiva que muestre el conteo de
items

Construir un servicio que se comporte como
Event Hub
Que el conteo se actualize mediante el
EventHub
23


Generar dependencias “on the fly”

25


El atributo “resolve” en el routeObject

26


$index: Contador de iteraciones. Inicia en 0



$first: flag



$last: flag



$middle: flag (cualquier elemento entre first y
last



$even $odd

27




Podemos establecer un filtro que genere un
arreglos por nosotros:

Modo de uso:

28




En la directiva select, se puede definir el
atributo ng-options

La agrupación se da mediante la etiqueta
<optgroup>

29





Contienen street
No contienen street
Contienen street en su propiedad name
La propiedad name es igual a street

30


Scope: true
◦ Hija hereda todas las propiedades del padre



Scope: {}  No hereda nada
◦ $parent  apunta al scope padre

31


Teórico, 15 minutos durante la semana.
◦ Basado en las diapositivas



Práctico:
◦ Realizar un blog,
◦ Login, una directiva que escuche cuando alguien se
logea y de la bienvenida
◦ CRUD Posts
◦ Usar filtros para la fecha
◦ Usar routing, services, controllers, directives
◦ Viernes 28/02
32
¿Alguna pregunta?

Sergio Castillo
Front End Developer
@scyrizales

More Related Content

What's hot

Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyJose Juan R. Zuñiga
 
Java Script BáSico Ajax
Java Script BáSico AjaxJava Script BáSico Ajax
Java Script BáSico AjaxArnulfo Gomez
 
La estructura basica_para_c_
La estructura basica_para_c_La estructura basica_para_c_
La estructura basica_para_c_GamePlayer35
 
Javascript 1
Javascript 1Javascript 1
Javascript 1Juan C
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchezsamo509
 
TypeScript - Angular 2 - ionic 2
TypeScript - Angular 2 - ionic 2TypeScript - Angular 2 - ionic 2
TypeScript - Angular 2 - ionic 2Micael Gallego
 
Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Raul Fraile
 
Introduccion a Programacion Reactiva
Introduccion a Programacion ReactivaIntroduccion a Programacion Reactiva
Introduccion a Programacion ReactivaAndres Almiray
 
jQuery - 01 Conceptos básicos de java script
jQuery - 01 Conceptos básicos de java scriptjQuery - 01 Conceptos básicos de java script
jQuery - 01 Conceptos básicos de java scriptJacob Flores
 
Funciones Y Procedimientos Vb 3
Funciones Y Procedimientos Vb 3Funciones Y Procedimientos Vb 3
Funciones Y Procedimientos Vb 3UVM
 

What's hot (18)

Clase09 java script
Clase09 java scriptClase09 java script
Clase09 java script
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con Groovy
 
Curso AngularJS - 4. filtros y servicios
Curso AngularJS - 4. filtros y serviciosCurso AngularJS - 4. filtros y servicios
Curso AngularJS - 4. filtros y servicios
 
Java Script BáSico Ajax
Java Script BáSico AjaxJava Script BáSico Ajax
Java Script BáSico Ajax
 
Curso AngularJS - 2. conceptos básicos
Curso AngularJS - 2. conceptos básicosCurso AngularJS - 2. conceptos básicos
Curso AngularJS - 2. conceptos básicos
 
La estructura basica_para_c_
La estructura basica_para_c_La estructura basica_para_c_
La estructura basica_para_c_
 
Retorno de valores
Retorno de valoresRetorno de valores
Retorno de valores
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Javascript 1
Javascript 1Javascript 1
Javascript 1
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchez
 
TypeScript - Angular 2 - ionic 2
TypeScript - Angular 2 - ionic 2TypeScript - Angular 2 - ionic 2
TypeScript - Angular 2 - ionic 2
 
Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain
 
Por pagar
Por pagarPor pagar
Por pagar
 
Introduccion a Programacion Reactiva
Introduccion a Programacion ReactivaIntroduccion a Programacion Reactiva
Introduccion a Programacion Reactiva
 
Angular 6
Angular 6Angular 6
Angular 6
 
Javascript + Angular Sesion 2
Javascript + Angular Sesion 2Javascript + Angular Sesion 2
Javascript + Angular Sesion 2
 
jQuery - 01 Conceptos básicos de java script
jQuery - 01 Conceptos básicos de java scriptjQuery - 01 Conceptos básicos de java script
jQuery - 01 Conceptos básicos de java script
 
Funciones Y Procedimientos Vb 3
Funciones Y Procedimientos Vb 3Funciones Y Procedimientos Vb 3
Funciones Y Procedimientos Vb 3
 

Viewers also liked

Presentacia pau-2013-alumnes-2n-bat
Presentacia pau-2013-alumnes-2n-batPresentacia pau-2013-alumnes-2n-bat
Presentacia pau-2013-alumnes-2n-batmariona09
 
Tutorial google calendar2
Tutorial google calendar2Tutorial google calendar2
Tutorial google calendar2Pedro
 
Promocionarse en redes sociales
Promocionarse en redes socialesPromocionarse en redes sociales
Promocionarse en redes socialesServilia
 
Nuevas extensiones de dominio y Trademark Clearinghouse
Nuevas extensiones de dominio y Trademark ClearinghouseNuevas extensiones de dominio y Trademark Clearinghouse
Nuevas extensiones de dominio y Trademark ClearinghouseNominalia
 
Pares3eso set
Pares3eso  setPares3eso  set
Pares3eso setmariona09
 
TRABAJO SOBRE SEGUROS 2014
TRABAJO SOBRE SEGUROS 2014TRABAJO SOBRE SEGUROS 2014
TRABAJO SOBRE SEGUROS 2014kamovic
 
Clase5 investigacion accion modelo 01
Clase5 investigacion accion modelo 01Clase5 investigacion accion modelo 01
Clase5 investigacion accion modelo 01DOCTORANDO UNE - EGV
 
Museo Virtual De Motos
Museo Virtual De MotosMuseo Virtual De Motos
Museo Virtual De Motosninoperdio
 
Anteproyecto
AnteproyectoAnteproyecto
Anteproyectokary2807
 
Lectura1 L. Mumford. Historia y teoría 2. DIUNAL
Lectura1 L. Mumford. Historia y teoría 2. DIUNALLectura1 L. Mumford. Historia y teoría 2. DIUNAL
Lectura1 L. Mumford. Historia y teoría 2. DIUNALHelen Rocío Martínez
 
Pares4teso set
Pares4teso  setPares4teso  set
Pares4teso setmariona09
 
Productos evidencias2
Productos evidencias2Productos evidencias2
Productos evidencias2albarosa29
 

Viewers also liked (20)

Heretostay es ravised-link_jan_2015 (2)
Heretostay es ravised-link_jan_2015 (2)Heretostay es ravised-link_jan_2015 (2)
Heretostay es ravised-link_jan_2015 (2)
 
Presentacia pau-2013-alumnes-2n-bat
Presentacia pau-2013-alumnes-2n-batPresentacia pau-2013-alumnes-2n-bat
Presentacia pau-2013-alumnes-2n-bat
 
Tutorial google calendar2
Tutorial google calendar2Tutorial google calendar2
Tutorial google calendar2
 
Fase planificacionmaria
Fase planificacionmariaFase planificacionmaria
Fase planificacionmaria
 
Promocionarse en redes sociales
Promocionarse en redes socialesPromocionarse en redes sociales
Promocionarse en redes sociales
 
Las comunidades
Las comunidadesLas comunidades
Las comunidades
 
Facsimil2
Facsimil2Facsimil2
Facsimil2
 
Nuevas extensiones de dominio y Trademark Clearinghouse
Nuevas extensiones de dominio y Trademark ClearinghouseNuevas extensiones de dominio y Trademark Clearinghouse
Nuevas extensiones de dominio y Trademark Clearinghouse
 
Pares3eso set
Pares3eso  setPares3eso  set
Pares3eso set
 
TRABAJO SOBRE SEGUROS 2014
TRABAJO SOBRE SEGUROS 2014TRABAJO SOBRE SEGUROS 2014
TRABAJO SOBRE SEGUROS 2014
 
Clase5 investigacion accion modelo 01
Clase5 investigacion accion modelo 01Clase5 investigacion accion modelo 01
Clase5 investigacion accion modelo 01
 
Museo Virtual De Motos
Museo Virtual De MotosMuseo Virtual De Motos
Museo Virtual De Motos
 
Anteproyecto
AnteproyectoAnteproyecto
Anteproyecto
 
Lectura1 L. Mumford. Historia y teoría 2. DIUNAL
Lectura1 L. Mumford. Historia y teoría 2. DIUNALLectura1 L. Mumford. Historia y teoría 2. DIUNAL
Lectura1 L. Mumford. Historia y teoría 2. DIUNAL
 
Grupo Alfa Segmentacion2009
Grupo Alfa Segmentacion2009Grupo Alfa Segmentacion2009
Grupo Alfa Segmentacion2009
 
Guion ieqi v3
Guion ieqi v3Guion ieqi v3
Guion ieqi v3
 
Pares4teso set
Pares4teso  setPares4teso  set
Pares4teso set
 
Derecho Informatico
Derecho InformaticoDerecho Informatico
Derecho Informatico
 
Productos evidencias2
Productos evidencias2Productos evidencias2
Productos evidencias2
 
Futbol
FutbolFutbol
Futbol
 

Similar to Conceptos Angular (20)

Advanced angular 1
Advanced angular 1Advanced angular 1
Advanced angular 1
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Portafolio
PortafolioPortafolio
Portafolio
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchez
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchez
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchez
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
Php basico
Php basicoPhp basico
Php basico
 
Taller de PHP Básico
Taller de PHP BásicoTaller de PHP Básico
Taller de PHP Básico
 
Clase 5 controller
Clase 5 controllerClase 5 controller
Clase 5 controller
 
Clase 5 php
Clase 5 phpClase 5 php
Clase 5 php
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2
 
javascript.ppt
javascript.pptjavascript.ppt
javascript.ppt
 
APIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptxAPIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptx
 
Servicios web
Servicios webServicios web
Servicios web
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .net
 
Tutorial Java Script
Tutorial Java ScriptTutorial Java Script
Tutorial Java Script
 

More from Sergio Castillo Yrizales

Angular of things: angular2 + web bluetooth
Angular of things: angular2 + web bluetoothAngular of things: angular2 + web bluetooth
Angular of things: angular2 + web bluetoothSergio Castillo Yrizales
 
Arquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móvilesArquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móvilesSergio Castillo Yrizales
 

More from Sergio Castillo Yrizales (20)

Un dia en la vida de un Software Engineer
Un dia en la vida de un Software EngineerUn dia en la vida de un Software Engineer
Un dia en la vida de un Software Engineer
 
Javascript en tiempos de colera
Javascript en tiempos de coleraJavascript en tiempos de colera
Javascript en tiempos de colera
 
Lambda at the edge
Lambda at the edgeLambda at the edge
Lambda at the edge
 
Angular of things: angular2 + web bluetooth
Angular of things: angular2 + web bluetoothAngular of things: angular2 + web bluetooth
Angular of things: angular2 + web bluetooth
 
Pushing html5 beyond boundaries
Pushing html5 beyond boundariesPushing html5 beyond boundaries
Pushing html5 beyond boundaries
 
Javascript en tiempos de colera
Javascript en tiempos de coleraJavascript en tiempos de colera
Javascript en tiempos de colera
 
Web apps con angular y material design
Web apps con angular y material designWeb apps con angular y material design
Web apps con angular y material design
 
Tdd con Angular y jasmine
Tdd con Angular y jasmineTdd con Angular y jasmine
Tdd con Angular y jasmine
 
Ruby 101 session 5
Ruby 101 session 5Ruby 101 session 5
Ruby 101 session 5
 
Ruby 101 session 4
Ruby 101 session 4Ruby 101 session 4
Ruby 101 session 4
 
Javascript + Angular Sesion 6
Javascript + Angular Sesion 6Javascript + Angular Sesion 6
Javascript + Angular Sesion 6
 
Javascript + Angular Sesion 5
Javascript + Angular Sesion 5Javascript + Angular Sesion 5
Javascript + Angular Sesion 5
 
Ruby 101 session 3
Ruby 101 session 3Ruby 101 session 3
Ruby 101 session 3
 
Ruby 101 session 2
Ruby 101 session 2Ruby 101 session 2
Ruby 101 session 2
 
Javascript + Angular Sesion 4
Javascript + Angular Sesion 4Javascript + Angular Sesion 4
Javascript + Angular Sesion 4
 
Ruby 101 session 1
Ruby 101 session 1Ruby 101 session 1
Ruby 101 session 1
 
Javascript + Angular Sesion 3
Javascript + Angular Sesion 3Javascript + Angular Sesion 3
Javascript + Angular Sesion 3
 
Javascript + Angular Sesion 1
Javascript + Angular Sesion 1Javascript + Angular Sesion 1
Javascript + Angular Sesion 1
 
Jquery mobile
Jquery mobileJquery mobile
Jquery mobile
 
Arquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móvilesArquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móviles
 

Recently uploaded

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 

Recently uploaded (10)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 

Conceptos Angular

  • 2.  Directivas II  Explicando la Magia  Eventos  Trucos en Angular
  • 3.
  • 4. 4
  • 5. 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 5
  • 6. 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 6
  • 7.  Las directivas se pueden usar incrementar la reusabilidad del codigo ◦ Ejemplo: ◦ http://codepen.io/scyrizales/full/egdsB para
  • 8.  Las directivas se pueden usar para implementar el doble binding entre Angular y componentes de terceros ◦ Ejemplo: ◦ http://codepen.io/brunoscopelliti/full/zIstF
  • 9. 9
  • 10.   Cada vez que cambia el scope, se actualiza la vista. Cada vez que un “major event” sucede en la aplicación, y luego de que sucede, se ejecuta una operación “digest” y se actualiza el scope 10
  • 11.  Entradas de usuario: ◦ Mouse, keyboard, etc.  Eventos de Navegador: ◦ timeout, blur, etc.  Llamadas Ajax: ◦ json, templates, etc… 11
  • 12.    $digest es un metodo interno que realiza la verificación de los cambios entre la vista y el scope y hace las respectivas actualizaciones al scope $apply sirve para llamar desde fuera al $digest. Cuando usamos otras librerias externas, es necesario llamar a $apply $$phase es un indicador de si esta corriendo un $digest. Debemos tenerlo en cuenta para no aplicar $apply porque nos dará un error. 12
  • 13.   angular.element(domElement).scope() Sobre este scope, podemos aplicar las funciones $apply y $digest. 13
  • 14.  Para evitar los problemas de usar el $apply podemos crear esta función en el rootScope 14
  • 15.
  • 16.  Se basan en 3 funciones ◦ $emit ◦ $broadcast ◦ $on 16
  • 17.    Desde el lugar donde se tome el punto de referencia, hay dos cadenas de herencias Esto se cumple para las controladoras y las directivas Depende de hacia donde nos queramos comunicar hay un método distinto. 17
  • 18.    Envia un evento hacia arriba en la cadena de scopes Va desde el punto de origen, hacia el rootscope Una directiva la puede usar para comunicarse con la controladora padre. 18
  • 19.    Envia un evento hacia abajo en la cadena de scopes Va desde el punto de origen, hacia el rootscope Una controladora la puede usar para comunicarse con controladoras hijas o directivas. 19
  • 20.   Permite escuchar un evento listenerFn es una funcion con el siguiente formato: ◦ function(event, args...)  The event es un objeto Event que tiene varias propiedades 20
  • 21.       targetScope - {Scope}: scope Origen de donde fue $emit-ido o $broadcast-eado. currentScope - {Scope}: el scope en el que se llama la función $on. name - {string}: nombre del Evento. stopPropagation - {function=}: llamar función stopPropagation cancelara toda posible propagación (solo para eventos que fueron $emit-idos). preventDefault - {function}: calling preventDefault sets defaultPrevented fl ag to true. defaultPrevented - {boolean}: true if preventDefault was called. 21
  • 22.   Se puede inyectar el rootScope en una controladora o directiva para poder utilizar el $broadcast como un event hub global Lo ideal seria encapsularlo en un servicio para poder inyectarlo a voluntad sin exponer las demas funciones del rootScope 22
  • 23.     Refactorizar el ejemplo del carrito Crear una directiva que muestre el conteo de items Construir un servicio que se comporte como Event Hub Que el conteo se actualize mediante el EventHub 23
  • 24.
  • 26.  El atributo “resolve” en el routeObject 26
  • 27.  $index: Contador de iteraciones. Inicia en 0  $first: flag  $last: flag  $middle: flag (cualquier elemento entre first y last  $even $odd 27
  • 28.   Podemos establecer un filtro que genere un arreglos por nosotros: Modo de uso: 28
  • 29.   En la directiva select, se puede definir el atributo ng-options La agrupación se da mediante la etiqueta <optgroup> 29
  • 30.     Contienen street No contienen street Contienen street en su propiedad name La propiedad name es igual a street 30
  • 31.  Scope: true ◦ Hija hereda todas las propiedades del padre  Scope: {}  No hereda nada ◦ $parent  apunta al scope padre 31
  • 32.  Teórico, 15 minutos durante la semana. ◦ Basado en las diapositivas  Práctico: ◦ Realizar un blog, ◦ Login, una directiva que escuche cuando alguien se logea y de la bienvenida ◦ CRUD Posts ◦ Usar filtros para la fecha ◦ Usar routing, services, controllers, directives ◦ Viernes 28/02 32
  • 33. ¿Alguna pregunta? Sergio Castillo Front End Developer @scyrizales