Skip to content

Instantly share code, notes, and snippets.

@Klerith
Last active March 3, 2026 14:42
Show Gist options
  • Select an option

  • Save Klerith/b07bfb16b4d6aa27b8ccdbb991d316b2 to your computer and use it in GitHub Desktop.

Select an option

Save Klerith/b07bfb16b4d6aa27b8ccdbb991d316b2 to your computer and use it in GitHub Desktop.
Tarea de conceptos básicos de Angular
<h1>{{ name() }}</h1>
<dl>
<td>Nombre:</td>
<dd>{{ name() }}</dd>
<td>Edad:</td>
<dd>{{ age() }}</dd>
<td>Método:</td>
<dd>{{ getHeroDescription() }}</dd>
<td>Capitalizado:</td>
<!-- ! Intentar -->
<!-- <dd> {{ 'Mostrar nombre TODO EN MAYÚSCULAS' }} </dd> -->
</dl>
<button (click)="changeHero()" class="btn btn-primary mx-2">
Cambiar nombre
</button>
<button class="btn btn-primary">Cambiar edad</button>
<button (click)="resetForm()" class="btn btn-primary mx-2">Reset</button>

Tarea:

Practicar lo aprendido hasta el momento

  1. Colocar esta importación del Bootstrap en el index.html
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
  1. Crear el componente de Angular correspondiente para este archivo: src/app/pages/hero/hero-page.component.html
  • El contenido del HTML está en este GIST también
  1. Crear la ruta respectiva en el app.routes.ts
  {
    path: '/hero',
    component: HeroPageComponent
  }
* Recuerden importar el componente en el app.routes.ts
* Navegar al URL: https://localhost:4200/hero
  1. Crear dos señales con los valores de Ironman y 45 respectivamente.
  name => string  = 'Ironman'
  age => number = 45
  1. Crear un método llamado: getHeroDescription Debe de regresar la concatenación del nombre y la edad.
getHeroDescription
  return `${ name } - ${ age }`;
  1. Implementar el método changeHero, no recibe argumentos y lo cambia a:
name = Spiderman
age = 22
  1. Implementar el método: resetForm, el cual establece
name = Ironman 
age = 45
  1. Implementar el método: chageAge, asignalor al evento click del botón respectivo.
cambia la edad a 60
  1. Extra: Tratar de mostrar el nombre (name) capitalizado en mayúscula sin crear una nueva señal.
@facundo-moran
Copy link

Si el punto 8 lo hemos hecho definiendo una clase en el html:

Capitalizado:
{{ name() }}
Y desde el css accediendo a esta class lo hemos definido: .capitalizado { text-transform: uppercase; }

Es buena practica? o es mejor defnir el metodo desde el propio html?

Creo que en Angular la mejor practica siempre es tener los tres archivos separados. component.html, component.css y component.ts. Recorda tambien siempre centralizar los datos en servicios.

@EnderJGV
Copy link

EnderJGV commented Mar 1, 2026

📚Implementación realizada.

👨‍💻Código dentro de componente.

export class HeroPageComponent{
  name = signal('Ironman');
  age = signal(45);

  getHeroDescription(){
    return `${this.name()} - ${this.age()}`
  }

  changeHero(){
      this.name.update(() => 'Spiderman');
      this.age.update(() => 22);
  }

  resetForm(){
    this.name.set('Ironman');
    this.age.set(45);
  }

  changeAgeHero(){
    this.age.update((current) => current + 1);
  }

  nameCapitalized(){
    return this.name().toUpperCase();
  }
}

✅Resultado final.

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment