Actividad entregable
Completion requirements
8. ProductFilterComponent (Filtrado de productos en tiempo real)
8.4. Colocar el filtro en la vista principal
El filtro no modifica directamente la vista.
Modifica el estado del servicio, y ese estado se propaga automáticamente a todos los componentes que están suscritos.
Esta es la razón por la que BehaviorSubject es tan importante en Angular.
Abrimos app.ts importamos el filtro:
import { ProductFilterComponent } from './components/product-filter/product-filter.component';
En el decorador
imports: [
CommonModule,
ProductFormComponent,
ProductFilterComponent,
ProductsListComponent
]
En app.html, colocamos el filtro entre el formulario y la lista:
<main class="container mb-5">
<app-product-form
(productoCreado)="onProductoCreado($event)">
</app-product-form>
<app-product-filter></app-product-filter>
<app-products-list></app-products-list>
</main>
La estructura ahora es clara:
Formulario -> Filtros -> Lista
Probamos la aplicación:
- Escribimos un nombre -> la lista se filtra
- Escribimos una categoría -> se actualiza
- Activamos "solo activos" -> desaparecen los inactivos
Todo esto ocurre en tiempo real gracias al BehaviorSubject.