Abrir el menú de navegación
Cerrar sugerencias
Buscar
Buscar
es
Change Language
Cambiar idioma
Cargar
Iniciar sesión
Iniciar sesión
Descargar gratis durante días
0 calificaciones
0% encontró este documento útil (0 votos)
36 vistas
Manual de AngularJS
Manual de AngularJS
Cargado por
Johana Ramos
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
Descargar ahora
Descargar
Guardar Manual de AngularJS para más tarde
Descargar
Guardar
Guardar Manual de AngularJS para más tarde
0%
0% encontró este documento útil, undefined
0%
, undefined
Insertar
Compartir
Imprimir
Reportar
0 calificaciones
0% encontró este documento útil (0 votos)
36 vistas
Manual de AngularJS
Manual de AngularJS
Cargado por
Johana Ramos
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
Descargar ahora
Descargar
Guardar Manual de AngularJS para más tarde
Carrusel anterior
Carrusel siguiente
Descargar
Guardar
Guardar Manual de AngularJS para más tarde
0%
0% encontró este documento útil, undefined
0%
, undefined
Insertar
Compartir
Imprimir
Reportar
Descargar ahora
Descargar
Está en la página 1
/ 70
Buscar
pantalla completa
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. derverrolloweb.com Manual para imprimir Autores del manual Este manual ha tido realizado por lor siguientes colaboradores de DetarrolloWeb.com: ‘Alberto Basalo Miguel Angel Alvarez Pedro Hurtado ‘Albert Beelo os axperto en dovasrip, Miguel os cede do DaserralaWab.com 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 - DesarrolloWeb.com & 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 - DesarrolloWeb.com 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 - DesarrolloWeb.com 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 Desarroloweb.com / 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/manul-sngarjs.hemlDesarrolloWeb.com 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 - DesarrolloWeb.com 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 - DesarrolloWeb.com 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"> === eaDesarrolloWeb.com
=== eaManual de AngularJs - DesarrolloWeb.com 44170