Actualizar Rodada
Clase 17 de 38 • Curso de Desarrollo de APIs con Sails.js
Resumen
¿Cómo facilitar que un usuario edite sus rodadas?
Es crucial ofrecer a tus usuarios la capacidad de editar sus entradas, especialmente en aplicaciones que involucran planificación de eventos o rutas como en nuestro caso. Modificar detalles como la fecha o el destino es vital para asegurarse de que todos los participantes estén en sintonía con los cambios. Vamos a ver cómo se puede implementar esta funcionalidad en una aplicación Angular.
¿Cómo implementar el enlace de edición?
Para hacer que un usuario pueda editar su rodada al hacer clic en un botón, vamos a agregar un nuevo botón en cada tarjeta de nuestro módulo .html
.
<ion-item>
<ion-label (click)="editRide(ride.id)">Editar</ion-label>
<ion-icon name="create-outline"></ion-icon>
</ion-item>
- Ubicación del botón: Colócala dentro de la sección del contenido de la tarjeta, asegurándote de que quede intuitivamente accesible para el usuario.
- RouterLink: Utiliza
[routerLink]
para redirigir al usuario a la pantalla de edición, pasando el ID del ride como parámetro en la URL. - Estilización: Agrega un ícono e utiliza estilos CSS adecuados para asegurar que el botón de edición sea visualmente atractivo.
¿Qué sucede cuando se presiona el botón de editar?
Cuando el usuario presiona el botón, se debe cargar la información actual de la rodada para permitirle editar los datos necesarios sin tener que ingresar todo nuevamente.
Implementación del llamado al backend
En el servicio de Angular, vamos a añadir dos métodos: uno para obtener la información existente y otro para actualizarla.
// Obtener información del ride
getRideById(id: string): Observable<Ride> {
return this.http.get<Ride>(`${this.apiUrl}/rides/${id}`);
}
// Actualizar la información del ride
updateRide(ride: Ride): Observable<any> {
return this.http.put(`${this.apiUrl}/rides/${ride.id}`, ride);
}
¿Cómo cargar la información en el formulario?
Dentro del componente de edición, asegúrate de cargar los datos del ride cuando el componente se inicialice:
- Suscribir: Usa el método
getRideById
para suscribirte y recibir los datos. - Rellenar el formulario: Asigna esos datos al modelo de formulario que contiene los campos de entrada.
¿Cómo manejar la actualización de datos?
Una vez que el usuario modifica los datos y los guarda, debes asegurarte de que los cambios se envíen y se reflejen adecuadamente:
saveRide(): void {
this.rideService.updateRide(this.ride).subscribe(
response => {
alert('Rodada actualizada exitosamente');
this.router.navigate(['/rides']);
},
error => {
alert('Error actualizando la rodada');
}
);
}
¿Cómo mejorar la interfaz de usuario?
Finalmente, para mejorar la experiencia del usuario, es importante permitir que el usuario regrese al listado sin aplicar cambios. Para ello, podemos añadir un botón de "Volver":
<ion-toolbar>
<ion-buttons slot="start">
<ion-back-button></ion-back-button>
</ion-buttons>
</ion-toolbar>
- Funcionalidad de retorno: Utiliza
ion-back-button
para gestionar el retroceso en el historial de navegación. - Estilo coherente: Selecciona colores y estilos que se alineen con la apariencia general de tu aplicación, asegurando una experiencia de usuario atractiva.
Al aplicar estos principios, lograrás una interface de usuario más intuitiva y funcional, aumentando así el valor de la aplicación para tus usuarios. ¡Sigue explorando y mejorando!