SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
Angularjs
Estudiante de Analista en Tecnologías de la Información.
Trabajé TCS Uy, TCS Arg, GuruYu, moove-it y ahora en InfUy.
Desarrollo web apps en ruby, rails, javascript, java, felx (sí todavía existe) y sap




                                                                          @iamcherta
                                                                           cherta.info
Por qué un framework
Cómo llegamos hasta acá


● El browser como plataforma por
  encima del SO
● Javascript es el único lenguaje   Aplicaciones
  del browser
                                        más
● La capacidad de los clientes es
  mayor                              complejas
● Nuestras necesidades no son
  las mismas que hace 10 años.
Que desafíos enfrentamos

    Nuevas
                             Más código
funcionalidades




Más puntos de
                           Menor visibilidad
    fallos




Menor calidad
Qué es angularjs

Es un framework que implementa MVW para desarrollar
aplicaciones web utilizando HTML.

No trata de sobreponerse al HTML sino extenderlo.



    Mmmm... A mi me
    parece que es un
    framework MVVM
Model View ViewModel

Las vistas son suficientemente complejas como para tener
su propia lógica que no es lógica de negocios, si no lógica
de vista.

El View Model es una representación del problema de la
vista.
Model View ViewModel
                                  Passcards
                       * firstName
                       * lastName
                       * email
                       * phone
                       * primaryAddress
                       * alternateAddress
                       * valid?




                               Address
                       * address1
                       * address2
                       * city
                       * state
                       * country
                       * zip
Anatomía de una app

Podemos usar angular sin ninguna estructura pero se
recomienda usar angular-seed o yeoman.
Scope

Un scope es un objeto encargado de conectar las vistas
con los controllers.

En él vive el view-model.

Angular crea scopes de forma jerárquica bajo el rootScope.

La clase tiene un método que permite observar cambios en
el view model ($watch) y otro que permite propagar esos
cambios a las vistas ($apply).
Controllers

En angularjs un controller es una función que se usa para
crear hijos del rootScope.

Más específicamente se usan para:
    ● Setear el estado inicial del scope
    ● Agregar comportamiento a un scope

Los controllers reciben el scope
como parámetro: function AppCtrl($scope) {
                            $scope.person = {};
                        }
Dependency Injection

Angular usa DI para el manejo de todas las dependencias
tanto en módulos como en controllers.
Data binding

Es el "cableado" de las propiedades de un modelo con los
elementos de la vista o template.

Funciona tanto para mostrar como para asignar valores
(two way data binding).
Data binding (beneficios)

Eliminamos la vista de nuestro problema y nos enfocamos
a resolver el problema (controller + scope)

Nuestro código es más testeable. No nos importa testear el
glue code de cambiar el DOM, testeamos directamente el
controller.
Templates

Los templates en son código HTML y CSS + elementos
específicos de angular que agregan comportamiento y
hacen del HTML estático vistas dinámicas.

Los elementos pueden ser:
   ●   Directive
   ●   Markup o expressions
   ●   Filter
   ●   Form controls
Directives

Las directivas son una forma de extender HTML.

Angular viene con muchas directivas como ng-repeat o ng-
model y nos permite crear las nuestras.
Expression

Son contenidas en {{expression}} y se evalúan cuando
angular compila el template.
Filter

Los filtros formatean expresiones en los templates
<h1>
  {{person.name | uppercase}}
</h1>




También se pueden encadenar
<h1>
  {{person.name | uppercase | reverse}}
</h1>
Form y control

Los forms y los controles son componentes (directivas de
angular) que facilitan el desarrollo de formularios.

La clave está en la directiva ng-model. Cuando seteamos
esta directiva no sólo estamos agregando el binding bi
direccional sino también comportamientos específicos para
validar y manejar el estado de los formularios.

Angular provee implementaciones para casi todos los
componentes de html5 (text, number, url, email, radio,
checkbox) y también algunas directivas como required,
pattern, minlength, maxlength, min, max.
Service

Los services son dependencias que se inyectan en los
controllers y proveen funcionalidad específica.

$scope es un servicio igual que $http y $resource.
Testing

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

6.angular js
6.angular js6.angular js
6.angular js
 
Angular js
Angular jsAngular js
Angular js
 
Angular js Frontenders Valencia
Angular js Frontenders ValenciaAngular js Frontenders Valencia
Angular js Frontenders Valencia
 
Curso Básico de AngularJS
Curso Básico de AngularJSCurso Básico de AngularJS
Curso Básico de AngularJS
 
Introducciòn a AngularJS
Introducciòn a AngularJSIntroducciòn a AngularJS
Introducciòn a AngularJS
 
AngularJS
AngularJSAngularJS
AngularJS
 
Angular js in mobile
Angular js in mobileAngular js in mobile
Angular js in mobile
 
Angularjs
AngularjsAngularjs
Angularjs
 
Introducción a AngularJS
Introducción a AngularJSIntroducción a AngularJS
Introducción a AngularJS
 
Carrera de fondo - La continuada lucha de AngularJS - CodeMotion 2015
Carrera de fondo - La continuada lucha de AngularJS - CodeMotion 2015Carrera de fondo - La continuada lucha de AngularJS - CodeMotion 2015
Carrera de fondo - La continuada lucha de AngularJS - CodeMotion 2015
 
Angular Conceptos Practicos 1
Angular Conceptos Practicos 1Angular Conceptos Practicos 1
Angular Conceptos Practicos 1
 
Hack2Progress - Desarrollando una aplicación web con AngularJS
Hack2Progress - Desarrollando una aplicación web con AngularJSHack2Progress - Desarrollando una aplicación web con AngularJS
Hack2Progress - Desarrollando una aplicación web con AngularJS
 
Introducción a Knockout
Introducción a KnockoutIntroducción a Knockout
Introducción a Knockout
 
Advanced angular 1
Advanced angular 1Advanced angular 1
Advanced angular 1
 
Login social con node.js
Login social con node.jsLogin social con node.js
Login social con node.js
 
Angular 2 is Coming - GDG DevFest Cordoba 2015
Angular 2 is Coming - GDG DevFest Cordoba 2015Angular 2 is Coming - GDG DevFest Cordoba 2015
Angular 2 is Coming - GDG DevFest Cordoba 2015
 
Introducción a AngularJS
Introducción a AngularJS Introducción a AngularJS
Introducción a AngularJS
 
Curso de Desarrollo Web de Platzi
Curso de Desarrollo Web de PlatziCurso de Desarrollo Web de Platzi
Curso de Desarrollo Web de Platzi
 
Curso de Responsive Design
Curso de Responsive DesignCurso de Responsive Design
Curso de Responsive Design
 
Integrando AngularJS y drupal
Integrando AngularJS y drupalIntegrando AngularJS y drupal
Integrando AngularJS y drupal
 

Similar a Angular js

003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdf003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdfDubiWeb.TK
 
01_ppt_introduccion_spring_mmmmmmmmm.pdf
01_ppt_introduccion_spring_mmmmmmmmm.pdf01_ppt_introduccion_spring_mmmmmmmmm.pdf
01_ppt_introduccion_spring_mmmmmmmmm.pdfMarvelNanosoft
 
Desarrollo de aplicaciones multiplataforma 2/2
Desarrollo de aplicaciones multiplataforma 2/2Desarrollo de aplicaciones multiplataforma 2/2
Desarrollo de aplicaciones multiplataforma 2/2Ignacio Muñoz Vicente
 
Extender Jquery para crear componentes web personalizados
Extender Jquery  para crear componentes web personalizadosExtender Jquery  para crear componentes web personalizados
Extender Jquery para crear componentes web personalizadosHéctor Curbelo Barrios
 
Webinar: Introducción a Angular
Webinar: Introducción a AngularWebinar: Introducción a Angular
Webinar: Introducción a AngularArsys
 
Como usar el Angular CLI
Como usar el Angular CLIComo usar el Angular CLI
Como usar el Angular CLIDaniel Marin
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...Miguel Ángel Sánchez Chordi
 
Frameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuroFrameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuroBBVA API Market
 
Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webRoberto Sanz Ciriano
 
Implementacion de un portal web para la automatización del proceso de consult...
Implementacion de un portal web para la automatización del proceso de consult...Implementacion de un portal web para la automatización del proceso de consult...
Implementacion de un portal web para la automatización del proceso de consult...Renan Cayao
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Facescok12v
 
Principios de Diseño de Componentes Web
Principios de Diseño de Componentes WebPrincipios de Diseño de Componentes Web
Principios de Diseño de Componentes WebJavier Vélez Reyes
 

Similar a Angular js (20)

003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdf003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdf
 
01_ppt_introduccion_spring_mmmmmmmmm.pdf
01_ppt_introduccion_spring_mmmmmmmmm.pdf01_ppt_introduccion_spring_mmmmmmmmm.pdf
01_ppt_introduccion_spring_mmmmmmmmm.pdf
 
Semana 2 Configuración entorno de desarrollo
Semana 2   Configuración entorno de desarrolloSemana 2   Configuración entorno de desarrollo
Semana 2 Configuración entorno de desarrollo
 
Desarrollo de aplicaciones multiplataforma 2/2
Desarrollo de aplicaciones multiplataforma 2/2Desarrollo de aplicaciones multiplataforma 2/2
Desarrollo de aplicaciones multiplataforma 2/2
 
5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web
 
AngularJS2
AngularJS2AngularJS2
AngularJS2
 
Extender Jquery para crear componentes web personalizados
Extender Jquery  para crear componentes web personalizadosExtender Jquery  para crear componentes web personalizados
Extender Jquery para crear componentes web personalizados
 
Spring Mvc Final
Spring Mvc FinalSpring Mvc Final
Spring Mvc Final
 
Angular 6
Angular 6Angular 6
Angular 6
 
Webinar: Introducción a Angular
Webinar: Introducción a AngularWebinar: Introducción a Angular
Webinar: Introducción a Angular
 
Ruby on Rails y AngularJS
Ruby on Rails y AngularJSRuby on Rails y AngularJS
Ruby on Rails y AngularJS
 
Como usar el Angular CLI
Como usar el Angular CLIComo usar el Angular CLI
Como usar el Angular CLI
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
 
GraphQL Reactivo
GraphQL ReactivoGraphQL Reactivo
GraphQL Reactivo
 
Frameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuroFrameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuro
 
Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones web
 
Cliente/Servidor
Cliente/ServidorCliente/Servidor
Cliente/Servidor
 
Implementacion de un portal web para la automatización del proceso de consult...
Implementacion de un portal web para la automatización del proceso de consult...Implementacion de un portal web para la automatización del proceso de consult...
Implementacion de un portal web para la automatización del proceso de consult...
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
 
Principios de Diseño de Componentes Web
Principios de Diseño de Componentes WebPrincipios de Diseño de Componentes Web
Principios de Diseño de Componentes Web
 

Último

CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
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
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
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
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
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
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
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
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
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
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
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
 

Último (19)

CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
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
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
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
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
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)
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
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
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
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
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.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
 

Angular js

  • 2. Estudiante de Analista en Tecnologías de la Información. Trabajé TCS Uy, TCS Arg, GuruYu, moove-it y ahora en InfUy. Desarrollo web apps en ruby, rails, javascript, java, felx (sí todavía existe) y sap @iamcherta cherta.info
  • 3. Por qué un framework
  • 4. Cómo llegamos hasta acá ● El browser como plataforma por encima del SO ● Javascript es el único lenguaje Aplicaciones del browser más ● La capacidad de los clientes es mayor complejas ● Nuestras necesidades no son las mismas que hace 10 años.
  • 5. Que desafíos enfrentamos Nuevas Más código funcionalidades Más puntos de Menor visibilidad fallos Menor calidad
  • 6. Qué es angularjs Es un framework que implementa MVW para desarrollar aplicaciones web utilizando HTML. No trata de sobreponerse al HTML sino extenderlo. Mmmm... A mi me parece que es un framework MVVM
  • 7. Model View ViewModel Las vistas son suficientemente complejas como para tener su propia lógica que no es lógica de negocios, si no lógica de vista. El View Model es una representación del problema de la vista.
  • 8. Model View ViewModel Passcards * firstName * lastName * email * phone * primaryAddress * alternateAddress * valid? Address * address1 * address2 * city * state * country * zip
  • 9. Anatomía de una app Podemos usar angular sin ninguna estructura pero se recomienda usar angular-seed o yeoman.
  • 10. Scope Un scope es un objeto encargado de conectar las vistas con los controllers. En él vive el view-model. Angular crea scopes de forma jerárquica bajo el rootScope. La clase tiene un método que permite observar cambios en el view model ($watch) y otro que permite propagar esos cambios a las vistas ($apply).
  • 11. Controllers En angularjs un controller es una función que se usa para crear hijos del rootScope. Más específicamente se usan para: ● Setear el estado inicial del scope ● Agregar comportamiento a un scope Los controllers reciben el scope como parámetro: function AppCtrl($scope) { $scope.person = {}; }
  • 12. Dependency Injection Angular usa DI para el manejo de todas las dependencias tanto en módulos como en controllers.
  • 13. Data binding Es el "cableado" de las propiedades de un modelo con los elementos de la vista o template. Funciona tanto para mostrar como para asignar valores (two way data binding).
  • 14. Data binding (beneficios) Eliminamos la vista de nuestro problema y nos enfocamos a resolver el problema (controller + scope) Nuestro código es más testeable. No nos importa testear el glue code de cambiar el DOM, testeamos directamente el controller.
  • 15. Templates Los templates en son código HTML y CSS + elementos específicos de angular que agregan comportamiento y hacen del HTML estático vistas dinámicas. Los elementos pueden ser: ● Directive ● Markup o expressions ● Filter ● Form controls
  • 16. Directives Las directivas son una forma de extender HTML. Angular viene con muchas directivas como ng-repeat o ng- model y nos permite crear las nuestras.
  • 17. Expression Son contenidas en {{expression}} y se evalúan cuando angular compila el template.
  • 18. Filter Los filtros formatean expresiones en los templates <h1> {{person.name | uppercase}} </h1> También se pueden encadenar <h1> {{person.name | uppercase | reverse}} </h1>
  • 19. Form y control Los forms y los controles son componentes (directivas de angular) que facilitan el desarrollo de formularios. La clave está en la directiva ng-model. Cuando seteamos esta directiva no sólo estamos agregando el binding bi direccional sino también comportamientos específicos para validar y manejar el estado de los formularios. Angular provee implementaciones para casi todos los componentes de html5 (text, number, url, email, radio, checkbox) y también algunas directivas como required, pattern, minlength, maxlength, min, max.
  • 20. Service Los services son dependencias que se inyectan en los controllers y proveen funcionalidad específica. $scope es un servicio igual que $http y $resource.