0 calificaciones0% encontró este documento útil (0 votos) 51 vistas70 páginasManual de AngularJS
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido,
reclámalo aquí.
Formatos disponibles
Descarga como PDF o lee en línea desde Scribd
Manual de
AngularJS
Este es un manual que nos introduce en el framework Javascript AngularJS, un conjunto de librerias
de cédigo abierto que nos sirven para hacer aplicaciones web avanzades del lado del cliente. Es ideal
para hacer aplicaciones de negocio y aplicaciones de gestion que se despliegan en una Unica pagina.
Usa el patron de disefio habitualmente encontrado en el desarrollo web MVC, aunque en una variante
Uamada a veces MV" y a veces MVM. Esto, junto con otras herramientas disponibles en Angular nos
permite un desarrollo ordenado, sencillo de realizar y sobre todo mas facil de mantener en un
futuro.
AngularJS esté qpoyado por Google y cada dia més desarrolladores estén adoptandolo, lo que nos da
una idea del prometedor futuro de la libreria.
[Link]
Manual para imprimir
Autores del manual
Este manual ha tido realizado por lor siguientes colaboradores de [Link]:
‘Alberto Basalo Miguel Angel Alvarez Pedro Hurtado
‘Albert Beelo os axperto en dovasrip, Miguel os cede do [Link] ye Amante da las nevada, dafonsar dea
‘angharJSy ares termlopos pare la web. pataforne de fermectin tine EcublaT. comunidae, Conpertr se fuente
Director da Agora Binary crevaores [Ecmanas ana munge et asaraia web an Sottuna. Now eres nou mundo 30
Oseurain, gest documentl amis ube, sho V7, Warstommande su hobby an eu mimo fur erancise. Extrem nue
Prowramade, eralistayarautecto de trabaje ler, Dearrltador en Net. Node
satovare, e/a cesar com Angular conver yporaue hae eo,
tp ainiethvrsaon neh, {Tt capitol coma
1 copies Hin. Zeosks ms/tlog/ohurtadal
(eapitate
Xavier Jorge Cerda
Popar, 2s CTO en Ambiental Intelligence 8
iteration, como darrell
Spec ts en tachologias Miro yen
Shascrpt, nplsor da ramewrk Anaae
itp: /goaks ma/blogs/xarpaper!
(espitao)
OD aronccicnienManual de AngularJS - [Link] &
Parte 1:
Introduccion
AngularJS
Esta es una introduccién de manera conceptual al framework Javascript Angular JS.
Explicamos por qué cada vez tiene mas importancia el desarrollo de aplicaciones web
‘con alta carga de Javascript y por qué son esenciales este tipo de librerias para una
programacion mas sencilla, répida y de facil mantenimiento. Completaremos la
introduccién con una practica en la que podremos experimentar con un primer ejemplo
fen Angular.
1.1.- Por qué AngularJS
Cémo los frameworks Javascript en general y AngularJS en concret
actuales de la informatica, en cuanto a desarrollo multiplataforma de aplicaciones grandes 0 enormes que se
asemejon a las de exeritorio,
sirven para solucionar las necesidades
Con este articulo comenzamos una serie dedicada a AngularJS, el framework Javascript MV* que
nos permite un desarrollo rapide y potenta de aplicaciones wel hasadas en Javascript del lado del
cliente. AngularJS es un conjunto de librerias apoyadas por Google que tiene un futuro muy
prometedor y que en estos momentos se encuentra en boca de todos. No se trata de una moda
pasajera, sino de una tecnologia que por su utilidad y caracteristicas ha venido para quedarse.
‘Alo largo de varios articulos nos iromos introduciendo on este framework, de una manora bastante
practica. Sin embargo vamos a comenzar con una introduccion mas teorica y retrospectiva que nos
haga entender el porque de la proliferacién de frameworks Javascript y el motivo por el que
Angular es una apuesta segura entre sus competidores.
ea
OSesManual de AngularJS - D
(Nota: Esta es una transcripcidn libre de la chatla de Alberto Basalo que nos afracié en abierto en un webinar de
DesarroloWeb,com Bscuelal El titulo de esta primers parte que ahora te resumimos es "Desarralio d=
‘aplicaciones de negocio y los retosy sluciones de 2024". Al final del artculo podrs ver el vdeo de a chara
1.1.1.- Un poco de historia
*El software sigue al hardware”. Esta es una afirmacién que nos indica que programamos para
aquellas maquinas en las que vamos a ejecutar los programas. Puede resultar obvio, pero como
ejemplo se puede sefialar que no vamos a programar para las "Google Glass’ si aun no las han
creado, o si aun no han liberado el SDK. Cuando empezo la informatica en los aitos 60 existian
ordenadores arcaicos y como programadares estabas limitado a las posibilidades de éstos.
Conforme avanz6 el desarrollo de la informatica aparecieron otros ordenadores. Al principio no
estaban conectados entre si ya que no existian las redes locales, ni mucho menos Internet. Como no
habia redes estabas limitado a lo que ocurria dentro de esa maquina y quizas los programadores
tenian una vida mas sencilla: estas limitaciones provocaban que no tuvieran que preacuparse por
ciertas cosas. Incluso las opciones para crear los programas -tecnologias y lenguajes- no eran
demasiadas, al contrario, quizas en tu sistema operativo estabas obligado a trabajar con un,
Tenguaje o un par de ellos nada mas.
Luego aparecioron las redes, aparecié Internet y los ordenadores comenzaron a conectarse entre
si. Existen servidores y terminales que ya no son tontos, pero estamos trabajando con lenguajes
sencillos, como HTML -al principio ni existia CSS- y ya acercandose al final del milenio aparecen
Ienguajes como Javascript capaces de hacer algunas cosas sencillas.
1.1.2.- El reto hoy
Hoy la situacién ya no es la que se describe anteriormente, sino que el panorama ha cambiado
mucho. Por un lado el abaratamiento de las comunicaciones hace que aparezcan grandes centros
de proceso de datos que nos facilitan el acceso a tecnologia de primer orden, lo que se llama la
nube. Ahora cualquier empresa, incluso las mas pequefias, tionen la posibilidad de acceder a
servidores de aplicaciones,
Se ha acabado la "tirania de Windows": hoy existen varios sistemas operativos y se usan para todo
tipo do cosas. Los Mac ya no los usan solamente los disefadores, los Linux no son terreno exclusive
de los desarrolladores, sino que cualquier persona usa esos sistemas para todo tipo de tareas. Los
desarrolladores no pueden centrarse en un nico sistema y limitar el servicio a las personas de
determinada plataforma.
La cosa no queda ahi, puesto que ya no solo hablamos de ordenadores de escritorio y portatiles,
ademas tenemos la tecnologia mévil y los dispositivos como tablets. Yendo todavia un poco mas alla
tenemos los televisores inteligentes, las Google Glass y al final de todo, el “Internet of Thing
Esta os la foto actual, que es muy distinta a la de las iiltimas décadas. Tenemos la nube con sus
innumerables posibilidades y tenamos una infinita gama de ordenadores y dispositivos a los
que atender.
1.1.3.- ¢En qué programar?
A toda la situacién relatada anteriormente le tenemos que sumar una interminable lista de
necesidades en el campo de la informatica y, por supuesto, tecnologias y lenguajes que nos sirven
para resolverlas. ¢Programo para la web o para el escritorio? ¢realizo desarrollo nativo 0
multiplataforma? La industria te da soluciones y aporta todo tipo de alternativas, Java, net, Python,
RoR, Objective-C y otros mas arcaicos come Cobol, pero es inevitable plantearse cual de ellos es
mas adecuado para resolver los problemas.
1.1.4. HTMLS + JS
Si quieres realizar un desarrollo que se adapte a todo tipo de sistemas y dispositivos que puedan
=== eaManual de AngularJS - [Link] 4170
Hogar a aparecer, una solucién es buscar algo que sea comin a todos los sistemas y buscar algo que
tengas seguridad que lo van a entender todos.
Existe un consenso en el mundo de la tecnologia de dar soporte a HTMLS y Javascript. La
situacién actual y la industria nos hace pensar que estos lenguajes estaran disponibles en todo
sistema donde circule un bit. Por ello, podemos ver a estas tecnologias de estandares abiertos como
un caballo ganador.
Eso si, HTMLS ~ Javascript compiten con las soluciones nativas y en términos de rendimiento es
muy dificil que puodan llegar a equipararse. El lenguaje nativo, ademas, siompre tendra mayor
facildad de acceso a las caracteristicas especificas y funcionalidades del dispositive.
‘Tambign compite con los lenguajes mas clasicos como C, PHP, Java donde hay ya muchi
ya realizado en forma de librerias disponibles para los programadores. Esta situacién est
‘cambiando, pero hay que observar que hasta hace poco era complicado hacer grandes programas
con Javascript, pues el lenguaje servia para bien poco. Con la llegada de HTMLS y las diversas API
se ha extendido mucho y se ha hecho mucho mas poderoso, pero todavia faltaba mucho terreno
para que Javascript se considerase un lenguaje robuste, capaz de cumplir las necesidades de
aplicaciones grandes.
10 trabajo
1.1.5.- Angular JS y otros frameworks
Recientemente han aparecido una oleada de sistemas que han situado Javascript en otro nivel.
AngularJ$ es uno de ellos, pero estan otros muchos como BackboneJS © Ember}S. Son los
frameworks que vienen a aportar herramientas y patrones de disefio con los que Javascript se
convierte en un lenguaje capaz de servir como motor de aplicaciones enormes.
Y tiene todo el sentido que sea asi. Hoy los ordenadores modernos, por muy modestos que sean, son
capaces de procesar con velocidad ciertas cosas. Son capaces de recibir simples datos y "cocinarso"
ellos mismos el HTML para visualizarlos a base de plantillas. Antes el servidor era el que tenia que
enviar el HTML completo al cliente, ahora la tendencia es que solo envie los datos y que el cliente
(navegador o cualquier otro sistema donde desees ver esos datos) sea ol que los trate y los muestre
debidamente.
Esto ha producido que una parte de la logica de maquetado y de presentacién de la informacién se
haya trasladado del servidor hacia los clientes. La ventaja obvia es que el servidor se ha descargado
do trabajo, puosto que simplemente tione quo enviar los datos a través de JSON al clionte y es éste
el que se encargara de producir el HTML que sea necesario. Pero no es solo una mejora en relacion
al servidor en términos de procesamiento, también en términos de bits, porque es mas ligero
transferir datos simples que el HTML completo para mostrarlos.
En dofinitiva, ol sorvidor ha repartido la carga de trabajo que solia recaer sobro él entre todos los
clientes que se conectan a su servicio. Pero la mejora no se queda solamente en el servidor, sino
que el usuario también percibe un mejor desempeno, puesto quo las acciones que realiza contra el
servidor tienen una respuesta mas rapida. Con ello poco a poco las aplicaciones cliente/servidor
tienen un desempefio mas parecido a las aplicaciones de escritorio, El usuario es el rey y demanda
aplicaciones que sean rapidas y no le hagan esperar y eso se lo dan los frameworks como
AngularJS.
Al programador ademas le facilitan las cosas, no solo por disponer de un conjunto de librerias, sino
porque los frameworks nos traen un conjunto de paradigmas y patrones que facilitan el desarrollo
del software y sobre todo su mantenimiento. Nos referimos principalmente al llamado MVC, que es
la separacién del cédigo an diferentes responsabilidades. Ahora cada parte del cédigo debemos
situarlo en un lugar determinado, y ese orden nos facilita que los desarrollos sean mas manejables,
Sobre todo esa mejora permite que en un futuro puedas "meter mano” al software para mantanerlo
cuando sea necesario. Todo redunda en la calidad del cédigo, lo que es indispensable para los
proyectos y los programadores.
1.1.6. Potente, sencillo y extensible
Ademas hay un ecosistema de herramientas alrededor de los frameworks y no solo aquellas que
estan incorporadas en las librerias del propio AngularJS cualquiera de sus competidores, sino una
serie de servicios web y librerias de terceros que nos facilitan una enorme gama de objetivos.
Damien http: ww cesarrallowab,com/manuales/menuil-anglarjs-htmlManual de AngularJS - D
Por poner dos ejemplos tenemos Apache Cordova, que es una libreria para servir de puente a
HTMLB5/JS hacia las caracteristicas y funcionalidades de los dispositives méviles. O sistemas como
Angular Fite que es un "backend as a service", que permite crear tu propia API y que ellos se
ocupen de crear todos los sistemas para la persistencia de la informacion y la entrega de los JSON.
1.1.7.- Angular JS mejora el HTML para crear aplicaciones web
AngularJs y otros frameworks tienen ademas la caracteristica de mejorar el HTML existente,
facilitando el desarrollo de aplicaciones. En este punto cabe recalear la palabra "aplicaciones"
puesto que este tipo de herramientas son adecuadas para realizar las Ilamadas “aplicaciones de
gestion’ o “aplicaciones de negocio".
Es importante esta mencién porque Angular]S no es adecuado para resolver todo tipo de proyectos,
al menos no te facilitara especialmente ciertos desarrollos, Incluso por sus caracteristicas habra
necesidades que ni siquiera sea adecuadas realizar on HTMLS, como posiblemente un videojuego
con graficos avanzados, donde seria mas adecuado una aplicacion nativa (aunque esto en el futuro
pueda cambiar),
Otro ejemplo es la realizacién de una aplicacién intensiva de SEO. En cuanto a posicionamiento
organico en buscadores el desarrollo con AngulatJS, u otros frameworks Javascript, no es muy
interesante porque el HTML que reciben los clientes -o los bots del motor de biisqueda- esta
practicamente vacio de contenido y solo se rellena a posteriori por medio de solicitudes Ajax.
Parece que Google esta haciendo esfuerzos para que esta situacién cambie y existen diversas
soluciones a nivel de programacion que pueden paliar en parte la carencia de SEO, pero lo cierto es
que el desarrollo de la aplicacion se complica al aplicarlas.
En fin, Angular] nos oftece muchas facilidades para hacer aplicaciones web, aplicacionos de
gestion o de negocio, aplicaciones que funcionan en dispositivos y que tienen un rendimiento
muy similar a las nativas e incluso aplicaciones de escritorio con un frontal web, cada vez mas
habituales
1.1.8.- Por qué Angular JS y no otros frameworks,
En este sentido podria haber mucho que discutir entre partidarios do uno y otro framework, pero si
dejamos a un lado las preferencias personales de cada uno, por aquella tecnologia en la que haya
apostado en el pasado, AngularJS es objetivamente mejor en muchos sentidos
Primero y mas importante es que con AngularJS requieres escribir menos eddigo que con otros
frameworks. Por ejemplo con respecte a BackboneJS hay muchas mejoras que son realmente
criticas como el "doble bindign’ que te permite que los distintos componentes de tu aplicacion
estén al tanto de los cambios para modificar su estado automaticamente, sin necesidad de
suscribirse a eventos y realizar otro tipo de acciones por medio de lineas de cédigo. En este sentido
hay tests objetivos que nos permiten ver que la misma aplicacién hecha con AngularJS tiene
sensiblemente menos cédigo que en BackboneJS y quiz4s con otros frameworks pase lo mismo.
Segundo la comunidad. Angulars tiene el apoyo de Google y una gran comunidad detras. Las
bisquedas de AngularJS se han disparado mientras que las de otros frameworks no han mejorade 0
han caido. Esto quiere decir en definitiva que encontraras mas documentacion y mas componentes
do otros desarrolladores para basar tu trabajo en elles.
Hasta aqui el primer articulo de AngularJS, que ha sido un tanto general. Solo esperamos que te
hayas quedado con ganas de mas. En el siguiente post te explicaremos qué es AngularJs.
A continuacién encuentras la charla que ha servido de base para escribir este articulo, de Alberto
Basalo. Muy entretenida e interesante, capaz de abrienos la mente y motivarnos a aprender
Angular]s.
=== eaManual de AngularJs - [Link] 6170
1.2.- Qué es AngularJS
Descripcién general sobre AngularJS, el framework Javascript, asi como les principales componentes que tiene y
les conceptos que debemoz conocer antes de poner manos en el eddigo.
AngularJS es Javascript, Es un proyecto de cédigo abierto, realizado en Javascript que contiene un
conjunto de librerias utiles para el desarrollo de aplicaciones web y propone una serie de patrones
de disefio para llevarlas a cabo. En pocas palabras, es lo que se conoce como un framework para el
desarrollo, en esta caso sobre el lenguaje Javascript con programacién del lado del cliente.
Puedes encontrar el proyecto de AngularJS en su propio sitio web: AngularJS, Superheroic
javaScript MVW Framework. Al ser un proyecto de cédigo abierto cualquier persona con un poco
de curiosidad echar un vistazo con profundidad y ver como se ha escrita, incluso admiten
colaboraciones de desarrolladores que quiera aportar cosas.
‘Nota: Este articula es una transcripcién dela exposicién de Alberto Basalo en [Link] / EscuelatT”
{que se emlU6 en abierto por webinar: Al pie del tato encontrar un video de esta charla. Hi bloque anterior de
festa ponencia le hemes publicado ys en el artculo "Por au angulanis".
1.2.4.+ Mejoras del HTML
Este Javascript pretende que los programadores mejoren el HTML que hacen. Que puedan producir
un HTML que, de manera declarativa, genere aplicaciones que sean faciles de entender incluso
para alguien que no tiene conocimientos profundos de informatica. El objetivo es producir un
HTML altamente semantico, es decir, que cuando lo leas entiendas de manera clara qué es lo que
hace o para qué sirve cada cosa.
Légicamente, AngularJS viene cargado con todas las herramientas que los creadores oftecen para
que los desarrolladores sean capaces de crear ese HTML enriquecido. La palabra clave que permite
ese HTML declarative en Angular]S es 'directiva’, que no es otra cosa que codigo Javascript que
mejora el HTML. Puedes usar el que viene con AngularJS y el que han hecho terceros
desarrolladores, puesto que muchas personas estan contribuyendo con pequefios proyectos
“independientes del propio framework- para enriquecer el panorama de directivas disponibles.
Hasta este punto seras un ‘consumidor de directivas", y finalmente cuando vayas tomando
experiencia serés capaz de convertirte en un "productor de directivas", enriqueciendo tit mismo las
herramientas para mejorar tu propio HTML,
1.2.2. Promueve patrones de diserio adecuados para aplicaciones web
Angular promueve y usa patrones de disefo de software. En concreto implementa lo que se llama
MVG, aunque en una variante muy extendida en el mundo de Javascript que luego comentaremos
con mas detalle. Basicamente estos patrones nos marcan la saparacién del cédigo de los programas
dependiendo de su responsabilidad. Eso permite repartir la légica de la aplicacion por capas, lo que
Darin http: ww cesarralawab com/manuales/[Link][Link] 7170
resulta muy adecuado para aplicaciones de negocio y para las aplicaciones SPA (Single Page
Aplication).
Nota: Las SPA
plicaciones de una sole pigina", son sitios web donde los usuarios perciben una experiencia
similar la que se tiene con las aplicacions de escritorio, En este tip de sitios la pégina no se recarga. no existe
‘una navegacidn de una pgina a otra totalmente diferente, sine que se van intercambiando las “vistas
“Téenicamente podriamos decir que. al interactuar con el sitio, el navegador no recargs todo el contenido sino
‘inicamente vistas dentro dela misma pagina,
1.2.3. Angular JS a vista de pajaro
Ahora vamos a hacer un breve recorrido para nombrar y describir con unos pequefios apuntes
aquellos elementos y conceptos que te vas a encontrar dentro de Angular].
Primeramente tenemos que hablar sobre ol gran patrén que se usa en Angular, ol conocido Modelo,
Vista, Controlador.
+ Vistas: Serd el HTML y todo lo que represente datos o informacién.
+ Controladores: Se encargaran de la légica de la aplicacién y sobre todo de las llamadas
Factorias’ y 'Servicios’ para mover datos contra servidores 0 memoria local en HTMLS.
+ Modelo de la vista: En Angular el "Modelo" es algo mas de aquello que se entiende
habitualmente cuando te hablan del MVC tradicional, osea, las vistas son algo mas que el
modelo de datos. En modo de ejemplo, en aplicaciones de negocio donde tienes que manejar
la contabilidad do una empresa, ol modelo sorian los movimientos contables. Poro en una
pantalla concreta de tu aplicacién es posible que tengas que ver otras cosas, ademas del
movimiento contable, como el nombre de los usuarios, los permisos que tienen, si pueden
ver los datos, editarlos, etc. Toda esa informacién, quo es util para el programador pero que
no forma parte del modelo del negocio, es a lo que llamamos el "Scope" que es el modelo en
Angular.
‘Nota: Por ese motive por el cual an AngularS tienes unos madelos un poco diferentes, algunos autoresdicen
que el patrdn que utiliza el framework es el MVVM Model View View Model. En resumen, el modelo de la vista son
Jos datos mis los datos adicionales que necesitas para mostrarios adecuadamente.
Ademas del patron principal, descrito hasta ahora tenemos los médulos:
‘Médulos: La manera que nos va a proponer AngularJS para que nosotros como desarrolladores
seamos cada vez mas ordenados, que no tengamos excusas para no hacer un buen cédigo, para
evilar el cédigo espaguetti, ficheros gigantescos con miles de lineas de cédigo, etc. Podemos dividir
las cosas, evitar el infierno de las variables globales en Javascript, etc. Con los modulos podemos
realizar aplicaciones bien hechas, do las quo un programador pucda sontirse orgulloso y sobre
todo, que nos facilite su desarrollo y el mantenimiento.
=== eaManual de AngularJS - [Link] 3170
AVISTA DE PAJARO
= VISTAS
* TROZOS DE HTML, &
© DIRECTIVAS
* FILTROS * mODULOS
* CONTROLADORES * App
* FACTORASDEADDESOA seo
* SERVICIOS DE LOGICADE * DEPENDENCIAS
NEGOCIO
= MODELO DE LA VISTA
* SScoPE
1.2.4.- Dos “mundos" en Angular JS
Ahora tenemos que examinar AngularJS bajo otra perspectiva, que nos facilite entender algunos
conceptos y practicas habituales en el desarrollo. Para ello dividimos el panorama del framework en.
dos areas.
+ Parte del HTML: Es la parte declarativa, con las vistas, asi como las directivas y filtros que
hos provee AngularJs, asi como los que hagamos nosotros mismos 0 terceros
desarrolladores,
+ Parte Javascript puro: Que seran los controladores, factorias y servicios.
DESCRIPCION GENERAL
HTML $scope JS
Es importante sefialar aqui, aunque se volver a incidir sobre ese punto, que nunca jams se debera
acceder al DOM dasde la parte del Javascript. Es un pacado mortal ya que esa parte debe ser
programada de manera agnéstica, sin tener en cuenta la manera en la que se van a presentar los
datos.
En medio tendremos el denominado Scope, que como decimos representa al modelo en Angular. En
resumen no es mas que un objeto Javascript el cual puedes extender creando propiedades que
pueden ser datos o funciones. Nos sirve para comunicar desde la parte del HTML a la parte del
Javascript y viceversa. Es donde se produce la "magia" en Angular y aunque esto no sea del todo
cierto, a modo de explicacién para que se entienda algo mejor, podemos decir que AngularJs se va a
suscribir a los cambios que ocurran en el scope para actualizar la vista. Y al reves, se suscribira a
los cambios que ocurran en la vista y con eso actualizara el scope.
En el siguiente articulo comenzaremos ya con cédigo, asi que los impacientes tendrén ya sus
daseos hechos realidad.
Puadas ver el video de esta parte de la presentacién sobre Qué es Angular].
=a eaManual de AngularJS - [Link] 9170
1.3.- AngularJS Vs jQuery
chi>Hola
En AngularJs ya vimos el cédigo necesario en un articulo anterior, pero lo reproducimos para poder
‘compararlos facilmente.
en” ng-app>
UTE-8">
=== ea[Link]
=== eaManual de AngularJs - [Link] 44170