Вы находитесь на странице: 1из 31

Capacitación formadores Generación de

capacidades en el Ecosistema Digital de


Bogotá

Formación especializada TI
Angular
Framework Front-end
Crear un proyecto en angular
Para crear una aplicación en Angular se utiliza la terminal de línea de comandos
angular CLI que ya habíamos instalado. Esta nos brinda comandos enfocados a
la creación de aplicaciones en Angular, generadores de código y comandos para
ejecutar el proyectos o pruebas. Para crear una aplicación vamos usar el
siguiente comando.

ng new my-app

Donde my-app será el nombre de nuestro proyecto


Estructura de archivos
Luego de ejecutar este comando se creara una carpeta con el nombre del
proyecto y esta contendrá los archivos necesarios para ejecutar una aplicación
de angular. Para la creación del proyecto angular CLI se apoya en npm para
descargar los paquetes necesarios.
Carpeta src
En tu aplicación vive en la carpeta src.
Todos los componentes de angular,
plantillas, estilos, imágenes y cualquier
otra cosa que necesite su aplicación
van aquí. Cualquier archivo fuera de
esta carpeta está destinado a ayudar a
construir su aplicación.
Archivo Propósito
app/app.component. Define el AppComponent junto con una plantilla HTML, hoja de estilo CSS y una
{ts,html,css,spec.ts} prueba unitaria. Es el componente raíz de lo que se convertirá en un árbol de
componentes anidados a medida que la aplicación evoluciona.
app/app.module.ts Define AppModule, el módulo raíz que le dice a Angular cómo armar la aplicación. En
este momento declara solo el AppComponent. Pronto habrá más componentes para
declarar.
assets/* Una carpeta donde puedes poner imágenes y todo lo demás para copiar al por mayor
cuando construyes tu aplicación.
environments/* Esta carpeta contiene un archivo para cada uno de sus entornos de destino, cada
uno exportando variables de configuración simples para usar en su aplicación. Los
archivos se reemplazan sobre la marcha cuando construyes tu aplicación. Puede
utilizar un punto final de API diferente para el desarrollo que para la producción o
quizás diferentes tokens de análisis. Incluso podría usar algunos servicios falsos. De
cualquier forma, la CLI lo tiene cubierto.
browserslist Un archivo de configuración para compartir navegadores de destino entre diferentes
herramientas de front-end.
favicon.ico Todos los sitios quieren verse bien en la barra de marcadores. Comience con su
propio ícono angular.
index.html La página HTML principal que se sirve cuando alguien visita su sitio. La mayoría
de las veces, nunca necesitarás editarlo. La CLI agrega automáticamente
todos js y css archivos cuando la construcción de su aplicación por lo que no
será necesario añadir ningún <script>o <link>etiquetas aquí manualmente.
karma.conf.js Configuración de prueba unitaria para el corrector de prueba Karma , que se
usa cuando se ejecuta ng test.
main.ts El principal punto de entrada para tu aplicación. Compila la aplicación con
el compilador JIT y arranca el módulo raíz de la aplicación ( AppModule) para
que se ejecute en el navegador. También puede usar el compilador AOT sin
cambiar ningún código agregando el --aotindicador a los comandos ng buildy ng
serve.
polyfills.ts Los diferentes navegadores tienen diferentes niveles de compatibilidad
con los estándares web. Los polyfills ayudan a normalizar esas
diferencias. Debería estar bastante seguro con core-jsy zone.js, pero
asegúrese de consultar la guía de soporte del navegador para obtener
más información.

styles.css Tus estilos globales van aquí. La mayoría de las veces querrá tener
estilos locales en sus componentes para facilitar el mantenimiento, pero
los estilos que afectan a toda su aplicación deben estar en un lugar
central.

test.ts Este es el principal punto de entrada para las pruebas de su


unidad. Tiene una configuración personalizada que puede ser
desconocida, pero no es algo que deba editar.

tsconfig.{app|spec}.json Configuración del compilador de TypeScript para la aplicación Angular


( tsconfig.app.json) y para las pruebas unitarias ( tsconfig.spec.json).

tslint.json Configuración de destello adicional para TSLint junto con Codelyzer ,


utilizado durante la ejecución ng lint. Linting ayuda a mantener un estilo
de código consistente.
Desplegar servidor
Ahora que tenemos creado nuestro proyecto podemos comprobar que todo esta
funcionando bien. Para esto podemos ejecutar el comando ng serve --open el
cual despliega un servidor local con nuestra aplicación.
Componentes
Los componentes son el bloque de construcción más básico de un interfaz de
usuario en una aplicación Angular. Una aplicación Angular es un árbol de
componentes. Los componentes de Angular son un sub-conjunto de directivas. A
diferencia de las directivas, los componentes siempre tienen una plantilla y solo
un componente puede ser instanciado por un elemento en una plantilla.

El app.component es el componente principal desde donde se ramifican los


componentes que vamos a desarrollar. Este es se llama desde el archivo
index.html de una aplicación en angular.
Componentes-Estructura
Por cada componente de angular que usemos necesitamos generalmente cuatro
archivos:

● .css (Vista-Estilos del componente)


● .html (Vista-Maqueta del componente)
● .ts (Controlador-”Modelo”-Lógica del componente)
● .spec.ts (Pruebas)
Decoradores
No es más que una declaración de cómo será(metadatos) un componente y las diversas
piezas de las que consiste.

Básicamente es una implementación de un patrón de diseño de software que en sí sirve


para extender una función mediante otra función, pero sin tocar aquella original, que se
está extendiendo. El decorador recibe una función como argumento (aquella que se quiere
decorar) y devuelve esa función con alguna funcionalidad adicional.

Las funciones decoradoras comienzan por una "@" y a continuación tienen un nombre. Ese
nombre es el de aquello que queramos decorar, que ya tiene que existir previamente.
Podríamos decorar una función, una propiedad de una clase, una clase, etc.
Como crear componentes
Como se menciono anteriormente las aplicaciones de angular se basa en dividir
nuestra app en componentes, para facilitar el desarrollo y no tener que generar
manualmente la estructura de un componente, podemos usar angular CLI.

ng generate component [nombre del componete]


Definición de un componente
Recordemos que la estructura de un componente consta de varias partes que
pueden hacer alusión al MVC, la vista la podemos manejar en un archivo externo
referenciado en el decorador @Component o también podemos declararla en la
propiedad template en vez de templateUrl usando comillas invertidas(``).

La lógica se define en una clase, donde podemos definir métodos y el binding lo


hacemos por medio de interpolación a través de los dobles corchetes({{}}).
Como llamar componentes
Para construir nuestro árbol de componentes la idea es ir llamando
componentes dentro de otros y lo más importante llevarlos al app.component ya
que es la raíz de nuestro árbol.

Para esto basta con agregar el selector de nuestros componentes definido en el


decorador @Component dentro del app.component.html como si fuera una
etiqueta.
Directivas
Una directiva se representa como un atributo en una etiqueta HTML, este
atributo está dotando al elemento del DOM que la contiene de un
comportamiento, ése comportamiento lo definimos nosotros y se puede utilizar
en todos los elementos que queramos.
Directivas estructurales
Estas directivas, que se diferencian fácilmente al ser precedidas por un
asterisco, alteran el layout añadiendo, eliminando o reemplazando elementos en
el DOM.
Veamos un par de ejemplos de directivas estructurales:

● ngIf: si la condición se cumple, su elemento se inserta en el DOM, en caso


contrario, se elimina del DOM. (equivale al ng-if de AngularJS)
● ngFor: repite su elemento en el DOM una vez por cada item que hay en el
iterador que se le pasa, siguiendo una sintaxis de ES6. (equivale al ng-for de
AngularJS)
Directivas Atributo
Las directivas atributo alteran la apariencia o el comportamiento de un elemento
existente en el DOM y su apariencia es igual a la de atributos HTML.

Veamos las directivas atributo más típicas:

● ngModel: Implementa un mecanismo de binding bi-direccional. El ejemplo


típico es con el elemento HTML <input>, donde asigna la propiedad value a
mostrar y además responde a eventos de modificación
● ngClass: Esta directiva permite añadir/eliminar varias clases a un elemento
de forma simultánea y dinámica.
Directiva ngIf
Esta directiva nos permite realizar una validación lógica para que se ejecute un bloque de HTML, lo
vamos a usar por ejemplo para ocultar elementos de nuestro sitio web.

Para usarla debemos incluirla como un atributo de HTML anteponiendo un asterisco y usando
camelCase iniciando en minúscula, luego ponemos un igual y entre comillas va a ir el código en
typeScript que queremos validar.
Directiva ngIf asociado a un evento (click)
Ahora para que nuestra aplicación sea un poco más dinámica agreguemos un evento click a un botón
para cambiar el estado de una variable y hacer que se muestre o no un párrafo con ngIf.

Para agregar un evento click en angular se debe usar la siguiente sintaxis (click)=“código typeScript”.
Directiva ngIf-else
Ahora veamos como podemos agregar un else a nuestra validación. Para esto en nuestra directiva ngIf,
luego de la condición agregamos un punto y coma (;) y agregamos la palabra reservada else a
continuación debe existir una variable que referencia para dar otro comportamiento. Por ejemplo para
mostrar otro elemento podemos usar esta variable de referencia dentro de una directiva llamada ng-
template donde podemos pasar como atributo esta variable.
Directiva ng-for
Esta directiva nos permite recorrer elementos de nuestros componentes como arrays.
Para esto usamos la directiva ngFor dentro del elemento HTML que queremos iterar y
dentro creamos una variable referencia que vamos a interpolar para mostrar el dato.
Directiva ng-class
Esta directiva nos permite agregar o quitar clases a elementos HTML desde
angular. Para usarla debemos agregar entre llaves ([ ]) la directiva ngClass luego
un igual y entre comillas una variable de typeScript.
Directiva ng-class y enventos (click)
Al igual que hicimos con el ngIf, con ngClass también podemos accionar esta
directiva por medio de un evento, como por ejemplo, el click.
Rutas
En las single page application, vemos que podemos cambiar el contenido de la pagina dinámicamente
pero también en muchas ocasiones la ruta del navegador también cambia. De esta manera el usuario
tiene la sensación de que ya esta en otro contenido de la pagina. Además este es un buen modo de
organizar nuestra aplicación. Hacer el enrutamiento con Angular es bastante sencillo.

Primero creemos algunos componentes adicionales.


Rutas-definir contenido de los componentes
Ahora vamos a definir los contenidos de estos componentes que acabamos de
generar, podemos por ejemplo agregar un titulo en la cabecera y un mensaje en
el pie de pagina.
Rutas- Router Module
Para poder definir las rutas con las que queremos trabajar y que estas nos lleven
a los componentes que creamos en primer lugar vamos a importar el modulo de
router en app.module.ts. Este modulo esta contenido de manera estándar en
Angular.
Rutas- definir rutas Router Module
Ahora vamos a definir las rutas dentro del mismo archivo de app.module.ts, para esto creamos una
constante llamada routes del tipo Routes y esta contiene un arreglo de objetos con dos propiedades, la
ruta y el componente.

Ahora dentro de la propiedad imports del decorador @NgModule vamos a agregar la siguiente
configuración:
Ruta por defecto
Dentro de las rutas podemos especificar que si una ruta esta vacía nos lleve a
determinado componente por ejemplo al componente de inicio. Para redirigir a la
pagina de inicio cuando no se encuetre una ruta podemos definir un path con el
método redirect.
Router-outlet
Ahora vamos a agregar una nueva directiva que tenemos disponible que es
Router-Outlet por medio de la cual se van a ir cargando nuestros componentes
dependiendo del path que este en la barra de dirección de nuestro navegador. Lo
correcto es agregar esta directiva en nuestro app.component.html
Enlaces
Ahora para que se cumpla el objetivo de Angular de no tener que recargar las
paginas vamos a agregar los enlaces en una barra de navegación. Para esto no
vamos a usar anclas con href ya que esto sobre carga la pagina, así que
usaremos una directiva de router llamada Link.

Вам также может понравиться

  • XML
    XML
    Документ48 страниц
    XML
    Ricardo Martinez
    Оценок пока нет
  • Guía 6.0 Git & Github
    Guía 6.0 Git & Github
    Документ28 страниц
    Guía 6.0 Git & Github
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Presentación 9.0
    Presentación 9.0
    Документ39 страниц
    Presentación 9.0
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Pensando La Computacion Como Un Cientifico Con JAVA
    Pensando La Computacion Como Un Cientifico Con JAVA
    Документ369 страниц
    Pensando La Computacion Como Un Cientifico Con JAVA
    Elias Mario Chombo Quezada
    100% (1)
  • Presentación 12
    Presentación 12
    Документ39 страниц
    Presentación 12
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Presentación 7.0
    Presentación 7.0
    Документ58 страниц
    Presentación 7.0
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • EstructurasdeDatosC J.villalobos
    EstructurasdeDatosC J.villalobos
    Документ399 страниц
    EstructurasdeDatosC J.villalobos
    Camilo Ballesteros
    Оценок пока нет
  • Presentación 8.1
    Presentación 8.1
    Документ15 страниц
    Presentación 8.1
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Presentación 8.0
    Presentación 8.0
    Документ33 страницы
    Presentación 8.0
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Presentación 10
    Presentación 10
    Документ61 страница
    Presentación 10
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Presentación 11
    Presentación 11
    Документ39 страниц
    Presentación 11
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Presentación 18
    Presentación 18
    Документ38 страниц
    Presentación 18
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Presentación 14
    Presentación 14
    Документ36 страниц
    Presentación 14
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Presentación 20 PDF
    Presentación 20 PDF
    Документ30 страниц
    Presentación 20 PDF
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Presentación 15
    Presentación 15
    Документ22 страницы
    Presentación 15
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Presentación 19 PDF
    Presentación 19 PDF
    Документ24 страницы
    Presentación 19 PDF
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Presentación 17
    Presentación 17
    Документ16 страниц
    Presentación 17
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Simulacro Examen PDF
    Simulacro Examen PDF
    Документ13 страниц
    Simulacro Examen PDF
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Presentación 21 PDF
    Presentación 21 PDF
    Документ30 страниц
    Presentación 21 PDF
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Documento Completo Entraga Final Corrección
    Documento Completo Entraga Final Corrección
    Документ17 страниц
    Documento Completo Entraga Final Corrección
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Presentación 13 PDF
    Presentación 13 PDF
    Документ39 страниц
    Presentación 13 PDF
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Definicion Necesidades Del Proyecto
    Definicion Necesidades Del Proyecto
    Документ1 страница
    Definicion Necesidades Del Proyecto
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Certificación Estudiantes
    Certificación Estudiantes
    Документ3 страницы
    Certificación Estudiantes
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Modulo 3 Tarea 4
    Modulo 3 Tarea 4
    Документ7 страниц
    Modulo 3 Tarea 4
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Moodle Buenas Practicas PDF
    Moodle Buenas Practicas PDF
    Документ54 страницы
    Moodle Buenas Practicas PDF
    Rafael Llerena Riascos
    Оценок пока нет
  • PROGRAMACION PARALELA v1
    PROGRAMACION PARALELA v1
    Документ68 страниц
    PROGRAMACION PARALELA v1
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • 254 1064 1 PB
    254 1064 1 PB
    Документ19 страниц
    254 1064 1 PB
    Andres Mauricio Guevara Riveros
    Оценок пока нет
  • Metodologia El
    Metodologia El
    Документ12 страниц
    Metodologia El
    Sergio Vargas Mendoza
    Оценок пока нет
  • Imagen de Fondo
    Imagen de Fondo
    Документ8 страниц
    Imagen de Fondo
    Ever Leonardo Minotta Reyes
    Оценок пока нет
  • 2-Presentación Del Lenguaje JavaScript PDF
    2-Presentación Del Lenguaje JavaScript PDF
    Документ5 страниц
    2-Presentación Del Lenguaje JavaScript PDF
    Diana Kath
    Оценок пока нет
  • Reglas y estructura de CSS
    Reglas y estructura de CSS
    Документ42 страницы
    Reglas y estructura de CSS
    marisol
    Оценок пока нет
  • Sistemas 9
    Sistemas 9
    Документ4 страницы
    Sistemas 9
    JOHANNA MARTINEZ
    Оценок пока нет
  • INTRODUCCION Del Proyecto de Matematica 2
    INTRODUCCION Del Proyecto de Matematica 2
    Документ36 страниц
    INTRODUCCION Del Proyecto de Matematica 2
    Armando Javier
    Оценок пока нет
  • Guia Aprendizaje 6
    Guia Aprendizaje 6
    Документ25 страниц
    Guia Aprendizaje 6
    jessica gomez
    Оценок пока нет
  • Proyecto de Grado Desarrollo de Una Aplicación Móvil
    Proyecto de Grado Desarrollo de Una Aplicación Móvil
    Документ9 страниц
    Proyecto de Grado Desarrollo de Una Aplicación Móvil
    Gregorio Peralta
    100% (1)
  • Sesion 10 - 2 Introduccion A Javascript
    Sesion 10 - 2 Introduccion A Javascript
    Документ29 страниц
    Sesion 10 - 2 Introduccion A Javascript
    Peralta Z. Carloo
    Оценок пока нет
  • Etiquetas de HTML
    Etiquetas de HTML
    Документ9 страниц
    Etiquetas de HTML
    Ivan Contreras
    Оценок пока нет
  • Guía11 - 2019 Tpi Ues
    Guía11 - 2019 Tpi Ues
    Документ7 страниц
    Guía11 - 2019 Tpi Ues
    Eduardo
    Оценок пока нет
  • Ejemplo de Tesis Incompleta
    Ejemplo de Tesis Incompleta
    Документ93 страницы
    Ejemplo de Tesis Incompleta
    Andres Mejia Bonilla
    Оценок пока нет
  • Temario Diseno Web Certificado
    Temario Diseno Web Certificado
    Документ5 страниц
    Temario Diseno Web Certificado
    Milagros Camacho
    Оценок пока нет
  • Prueba Algoritmos
    Prueba Algoritmos
    Документ8 страниц
    Prueba Algoritmos
    pepe
    Оценок пока нет
  • Clase 7. Navegadores e Internet
    Clase 7. Navegadores e Internet
    Документ32 страницы
    Clase 7. Navegadores e Internet
    lindavazquez248
    Оценок пока нет
  • Practicas de Gimp Bluefish y Gambas
    Practicas de Gimp Bluefish y Gambas
    Документ157 страниц
    Practicas de Gimp Bluefish y Gambas
    M Carmen Gómez Cano
    Оценок пока нет
  • Tablas Básicas
    Tablas Básicas
    Документ8 страниц
    Tablas Básicas
    Magaly Valdivia
    Оценок пока нет
  • 03 - Desarrollo de Aplicaicones Web I
    03 - Desarrollo de Aplicaicones Web I
    Документ25 страниц
    03 - Desarrollo de Aplicaicones Web I
    sebastian huaman
    Оценок пока нет
  • Lab 01 - Html5
    Lab 01 - Html5
    Документ15 страниц
    Lab 01 - Html5
    Rodrigo Cabrera Espinoza
    Оценок пока нет
  • VS2010Trabajo Con CSS
    VS2010Trabajo Con CSS
    Документ42 страницы
    VS2010Trabajo Con CSS
    custarez
    Оценок пока нет
  • Tablas HTML
    Tablas HTML
    Документ17 страниц
    Tablas HTML
    Ciro Navarro
    Оценок пока нет
  • El Uso de Las TIC y El Comercio Electronico en Las PYMES
    El Uso de Las TIC y El Comercio Electronico en Las PYMES
    Документ128 страниц
    El Uso de Las TIC y El Comercio Electronico en Las PYMES
    juan
    Оценок пока нет
  • Guia 3 HTML CSS CCC
    Guia 3 HTML CSS CCC
    Документ16 страниц
    Guia 3 HTML CSS CCC
    Daniel Reyes
    Оценок пока нет
  • Guion
    Guion
    Документ19 страниц
    Guion
    webmastersarria
    Оценок пока нет
  • Ejercicios HTML
    Ejercicios HTML
    Документ11 страниц
    Ejercicios HTML
    Juan Balsalobre muñoz
    Оценок пока нет
  • XML
    XML
    Документ85 страниц
    XML
    Saide GS
    100% (1)
  • Estructura Basica HTML
    Estructura Basica HTML
    Документ13 страниц
    Estructura Basica HTML
    Claudia Felix Medina
    Оценок пока нет
  • Docs Es Twig PDF
    Docs Es Twig PDF
    Документ147 страниц
    Docs Es Twig PDF
    Carlos Arcenio Rodriguez Noa
    Оценок пока нет
  • Ruby On Rails PDF
    Ruby On Rails PDF
    Документ64 страницы
    Ruby On Rails PDF
    Jhony Santos
    Оценок пока нет
  • Programación WEB
    Programación WEB
    Документ10 страниц
    Programación WEB
    Mario García Rojas
    Оценок пока нет
  • Conceptos Básicos de Páginas Web
    Conceptos Básicos de Páginas Web
    Документ13 страниц
    Conceptos Básicos de Páginas Web
    Luzhyo Petrhonyllo
    Оценок пока нет