Ejercicio de programación con Angular: Formularios reactivos en Angular

Código
Práctica
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 objeto Author 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 a http://localhost:3000/author/${id}.
    • Si la variable isUpdate es false lo enviarás por POST a http://localhost:3000/author.
Empezar ejercicio de programación

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.

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

Angular

Formularios reactivos en Angular

Formularios

Otros tutoriales de programación con Angular