Ejercicio de programación con Angular: Formularios reactivos en Angular
Código
0h 25m
Ejercicios Angular Formularios Reactivos. Domina el uso de formularios reactivos en Angular mediante ejercicios prácticos y ejemplos claros.
Dada la siguiente interfaz Author
en Angular:
export interface Author {
id: number;
firstName: string;
lastName: string;
birthDate: Date;
salary: number;
country: string;
bio: string;
wikipediaUrl: string;
}
Y dado el siguiente componente en Angular:
import { HttpClient } from '@angular/common/http';
import { Component, OnInit } from '@angular/core';
import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
import { ActivatedRoute, RouterLink } from '@angular/router';
import { Author } from '../../../interfaces/author.model';
@Component({
selector: 'app-author-form',
standalone: true,
imports: [ReactiveFormsModule, RouterLink],
templateUrl: './author-form.component.html',
styleUrl: './author-form.component.css'
})
export class AuthorFormComponent implements OnInit{
authorForm = ????
isUpdate: boolean = false;
author: Author | undefined;
constructor(
private httpClient: HttpClient,
private activatedRoute: ActivatedRoute
) {}
ngOnInit(): void {
this.activatedRoute.params.subscribe(params => {
const id = params['id'];
if(!id) {
return; // si no hay categoría se termina el método
}
this.httpClient.get<Author>(`http://localhost:3000/author/${id}`).subscribe(author => {
this.isUpdate = true;
this.author = author;
// Aquí debes cargar el author en el formulario
????
});
});
}
save() {
}
}
Copia y pega el código y completa el anterior código de TypeScript añadiendo:
authorForm
debe ser un FormGroup con campos FormControl para cada atributo de la interfaz Author.ngOnInit
aquí debes cargar el objetoAuthor
que llega del backend en el formulario, esto permitiría que el formulario aparezca con los datos del autor precargados.save()
El método save se invocaría cuando el usuario hace clic en el botón enviar del formulario. Aquí debes extraer los campos del formulario y crear un objeto Author a partir de ellos para enviarlo a backend.- Si la variable
isUpdate
es true lo enviarás por PUT ahttp://localhost:3000/author/${id}
. - Si la variable
isUpdate
es false lo enviarás por POST ahttp://localhost:3000/author
.
- Si la variable
Todos los ejercicios de programación de Angular
Evalúa tus conocimientos con ejercicios de programación en Angular de tipo Test, Puzzle, Código y Proyecto con VSCode.
Signals en Angular
Puzzle
Guards funcionales
Test
Decodificar JWT en Angular
Test
Servicio con HttpClient
Código
Ciclo de vida de componentes en Angular
Test
Gestión de productos de Fake Store API
Proyecto
Data binding en Angular
Test
Routes sin módulos en Angular
Código
Router en Angular
Test
Instalación de Angular
Puzzle
Route Guards basados en interfaces
Código
La directiva @if en Angular
Puzzle
Servicios en Angular
Puzzle
Interceptor funcional
Test
Servicio con Array
Código
La directiva @for en Angular
Puzzle
Interceptores HTTP
Código
Componentes standalone true
Puzzle
Formularios con ngModel en Angular
Puzzle
Routes en Angular
Test
Comunicación entre componentes Angular
Test
Parámetros en rutas con ActivatedRoute
Test
CRUD de Restaurantes y Platos
Proyecto
Tablas en Angular Material
Puzzle
Formulario de registro de usuarios
Proyecto
Instalación y uso de NgBoostrap
Puzzle
Desarrollo de componentes Angular
Test
JWT en Angular
Código
Formularios reactivos en Angular
Puzzle
Formularios en Angular Material
Puzzle
Layout con Angular Material
Puzzle
Effects en Angular
Test
Data binding
Código
HttpClient en servicios de Angular
Puzzle
Desarrollo de módulos Angular
Puzzle
Comandos Angular CLI
Puzzle
Subir archivo en formularios
Test
La directiva routerLink en Angular
Test
Certificados de superación de Angular
Supera todos los retos de Angular y obtén estos certificados de superación para mejorar tu currículum y tu empleabilidad.
Tutorial para resolver este ejercicio de programación
Angular
Formularios reactivos en Angular
Formularios