Angular es un framework poderoso ideal para aplicaciones grandes gracias a su arquitectura avanzada. Aunque ahora trabajaremos con un demo pequeño, es útil imaginar que Angular será la opción predilecta para escalar nuestra aplicación. Vamos a replicar una pequeña demo similar a la realizada con React en Sandbox, ahora implementada con Angular.
¿Cómo configurar un nuevo proyecto?
Crear un nuevo Sandbox Angular: Volvemos a Home & Code Sandbox y seleccionamos Angular para un nuevo entorno de desarrollo.
Explorar dependencias: Al abrir el package.json, notamos múltiples dependencias que comienzan con Angular, junto con herramientas como RxJS. Estas hacen parte del mismo framework pese a estar divididas para manejos individuales.
Interfaz y componentes: En index.html, encontramos la etiqueta <ap-root>, específica de Angular. Este marcador integra los componentes compilados con técnicas como Angular ID y el DOM incremental, al tiempo que evita que los usuarios vean etiquetas inexistentes en HTML al compilar.
Configuración del componente principal
En Angular, los módulos encapsulan componentes y servicios. Nos concentraremos inicialmente en el componente o el módulo de aplicación (app.module.ts). A través de main.ts, proyectamos nuestro primer módulo utilizando platformBrowserDynamic.
¿Cómo manejar selectores y plantillas?
Manipulación del selector: En el app.component, el selector app-root inserta el componente en nuestros templates Angular.
Plantillas en Angular: Las plantillas HTML pueden escribirse directamente en el atributo template o referidas a un archivo HTML externo usando templateUrl.
¿Cómo iniciar el marcado de nuestra aplicación de películas?
Vamos a diseñar un componente básico que incluya la plantilla directamente. Definiremos un título y un formulario que exhibe las películas. Aunque al inicio usemos un formulario estático, más adelante emplearemos estructuras dinámicas.
HTML para componente inicial:
<h2>{{ title }}</h2><form><h3>Avengers</h3><buttontype="button">-</button><span>0</span><buttontype="button">+</button></form>
¿Cómo hacer dinámico nuestro template?
Gestión de datos en TypeScript
Debemos modificar app.component.ts para que variables y estructuras reflejen nuestros datos dinámicamente. Esto implica tipeo de datos gracias a TypeScript.
Título dinámico: Cambiaremos el title de estático a variable referenciada.
Array de películas: Definimos un array movies con objetos que contienen name y available.
Incorporando TypeScript para validaciones estrictas
Para aprovechar las características de TypeScript, definimos un tipo personalizado Movie para manejar las propiedades de nuestros objetos de película de manera clara y tipada.
Utilizamos un atributo especial en Angular, ngFor, para iterar dentro de nuestros elementos array, creando plantillas de películas dinámicamente.
<div*ngFor="let movie of movies"><h3>{{ movie.name }}</h3><buttontype="button"(click)="removeMovieQuantity(movie)">-</button><span>{{ movie.quantity }}</span><buttontype="button"(click)="addMovieQuantity(movie)">+</button></div>
Métodos para manipulación de cantidad
Desarrollaremos métodos específicos en app.component.ts permitiendo gestionar dinámicamente la propiedad quantity al interactuar con botones.
Te retamos a añadir atributos dinámicos que deshabiliten:
El botón de “menos” si movie.quantity es igual a cero.
El botón de “más” si movie.quantity es igual a movie.available.
Para lograrlo, sería beneficioso aplicar atributos envueltos entre corchetes angulares para indicar dependencias lógicas en los botones.
¡Ánimo! Continúa explorando y dominando Angular, preparando el camino para tu éxito como desarrollador web. Con cada desafío, te acercas más a ser un experto en la creación de aplicaciones escalables y dinámicas.
Demo de Aplicación Angular para Gestión de Películas