Actividad entregable
Requisitos de finalización
4. ProductsListComponent + @for
4.3. Añadir ProductsListComponent al App
Colocamos el componente directamente en el AppComponent.
Abrimos app.ts y añade:
import { ProductsListComponent } from './components/products-list/products-list.component';
imports: [CommonModule, ProductsListComponent]
El archivo que tenemos es este:
import { Component, signal } from '@angular/core';
import { ProductService, Product } from './services/product';
import { ProductsList } from './components/products-list/products-list';
@Component({
selector: 'app-root',
imports: [ProductsList],
templateUrl: './app.html',
styleUrl: './app.css'
})
export class App {
protected readonly title = signal('gestion-productos');
productos: Product[] = [];
constructor(private productService: ProductService) {
this.productService.cargarProductos().subscribe(datos => {
console.log('Productos cargados:', datos);
});
}
}
Y en app.html, dentro del <main>
<main class="container mb-5">
<app-products-list></app-products-list>
</main>
Ahora sí, la lista de productos que viene de la API aparecerá en pantalla.
El archivo app.html que nos queda es este:
<!-- CABECERA -->
<header class="bg-dark text-white py-3 mb-4">
<div class="container d-flex justify-content-between align-items-center">
<h1 class="h3 m-0">Gestión de Productos</h1>
<nav>
<a href="#" class="text-white text-decoration-none me-3">Inicio</a>
<a href="#" class="text-white text-decoration-none">Contacto</a>
</nav>
</div>
</header>
<!-- CONTENIDO PRINCIPAL -->
<main class="container mb-5">
<app-products-list></app-products-list>
</main>
<!-- FOOTER -->
<footer class="bg-light py-3 text-center border-top mt-5">
<p class="m-0 text-muted">
© 2025 · Actividad DWEC · Angular 18
</p>
</footer>