Intermedio #1: Lista de Tareas 📝
Además de utilizar conocimiento de ejercicios pasados ¡Vamos a usar formularios!
💡 Introducción 💡
Ya hemos utilizado funciones muy divertidas de Angular, ahora vamos a utilizar un formulario para crear una pequeña lista de notas ¡Aquí puedes encontrar el demo!
Paso 1: Creemos nuestra App de Angular ⭐️
Entra a www.stackblitz.com, y verás algo como esto:


Paso 2: Añadamos un título ✍️
Vamos a crear el entorno de nuestra aplicación. Para ello iremos al archivo app.component.html y borramos todo el contenido para adicionar lo siguiente:
<div>
<div>
<div>
<h1>Tienes #<span class='highlight'>{{items.length}}</span>
elementos en la lista.
</h1>
</div>
</div>
</div>
Deberías ver algo así: 👇

Paso 3: Hora de poner el formulario 📋
Vamos a utilizar un formulario con un campo de texto y 2 botones: un botón adicionará el contenido del campo de texto a la lista y el otro botón limpiará la lista para que no contenga nada.
Adiciona este código en la línea 8 de tu archivo app.component.html
<div>
<form (ngSubmit)="save()">
<div class="form-group">
<input class="form-group"
id="textId"
type="text"
placeholder="Adiciona a la lista..."
required
minlength="3"
[(ngModel)]="model.text"
name="text" />
</div>
<button type='submit'>Adiciona a la lista</button>
<button (click)='clearComplete()' type='button'>Elimina toda la lista</button>
</form>
<label class="label">Form Model: {{this.model | json}}</label><br />
<label class="label">List: {{this.items | json}}</label><br />
</div>
Deberías hacer algo así, y tu resultado se deberá ver así:👇

Paso 4: Adicionemos lógica para el formulario 🧪 📋
Ahora vamos a modificar el archivo app.component.ts, en este vamos a adicionar la declaración de variables que vimos en el archivo app.component.html y además vamos a agregar unas funciones. En este archivo vamos a reemplazar su contenido, por el siguiente código:
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
model = {};
items = [];
ngOnInit() {
}
save() {
if (this.model.text !== '') {
this.items.unshift({ 'text': this.model['text'], 'complete': false });
this.model['text'] = '';
}
}
clearComplete() {
this.items = [];
}
}
Deberías hacer algo así, y tu resultado se deberá ver así:👇

Paso 5: Creemos un espacio para ver las listas 📝👀
Ahora vamos a modificar el archivo app.component.html, en este vamos a adicionar el código para ver nuestra lista. Adiciona este código en la línea 26 de tu archivo app.component.html
<div *ngIf="items.length > 0" class="mt-20">
<div *ngFor="let item of items" class="individual">
<div class="list-items">
<div class="items">
<input type="checkbox" id="check1"/>
<label for="check1">
<div><i class="fa fa-check"></i></div> {{item.text || 'Add some thing'}}
</label>
</div>
</div>
</div>
</div>
Deberías hacer algo así, y tu resultado se deberá ver así:👇

Paso Final: Personaliza tu aplicación 👩🏻🎨
¡Vamos a hacer que nuestra lista tenga color agregando CSS! ¿Recuerdas las clases que usamos en nuestro app.component.html? ¡Llegó el tiempo de usarlas! Reemplaza el contenido de app.component.css con éste:
* {
font-family: 'Gloria Hallelujah', cursive;
}
/* Title */
h1 {
color: #a4499a;
font-size: 26px;
font-weight: bold;
margin-bottom: 10px;
}
/* Title Number */
h1 span.highlight {
color: #4220da;
}
form {
width: 300px;
white-space: nowrap;
display: grid;
}
#textId {
width: 98%;
}
.label {
color: #7f6859;
font-weight: bold;
background-color: #e8e8e8;
width: 300px;
font-size: 15px;
font-family: Arial,Helvetica,sans-serif;
}
input {
border-radius: 15px;
}
button{
padding: 2px 0px;
background: #d075c1;
border-radius: 15px;
border: 0;
color: #fff;
font-size: 12px;
font-weight: bold;
cursor: pointer;
margin: 3px 0px;
}
.list-items {
background-color: #789872;
border-bottom: 3px solid #88b1a77a;
}
.items {
color: #fff;
font-size: 18px;
display: inline-flex;
}
.mt-20 {
margin-top: 20px;
}
Deberías hacer algo así, y tu resultado se deberá ver así:👇

😎 Tu Misión 😎
Parece que nuestra aplicación está lista excepto por un pequeño detalle 😵. Debería de poder eliminar un elemento de la lista cuando esta esté terminada.
⭐️ Utiliza lo que ya conoces como: data binding, llamado de funciones y evento clic en botones para lograr este objetivo.
💪💪¡¡Felicitaciones!! ¡Llegaste muy lejos! 💪💪
Last updated
Was this helpful?