Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

795
Vistas
¿Cómo cambio el color de fondo de cada div en el que se hace clic dentro de ngFor?

Actualmente tengo algunos chips de filtro personalizados dentro de un ngFor y actualmente los tengo configurados para permitir que solo un chip a la vez cambie el color de fondo cuando hace clic en él. Quiero cambiar esto para poder seleccionar varias fichas y hacer que varias de ellas cambien el color de fondo cuando se seleccionen. ¿Cómo debo abordar esto?

HTML:

 <div *ngFor="let category of categories; let i = index" class=" filter-chips px-3" (click)="active = i; chipAdded(category)" [ngClass]="active === i ? 'chip-clicked': '' "> {{category}} </div>

Componente:

 active: any;

CSS:

 .filter-chips { min-width: 50px; height: 30px; background-color: grey; border: 1px solid $grey-04; box-sizing: border-box; border-radius: 24px; text-align: center; color: $grey-02 !important; cursor: pointer; } .chip-clicked { background-color: green; color: white !important; border-color: white !important; }
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Pruebe el siguiente código.

 onChildSelect(Child) { for (let myChild of this.children) { myChild.BackgroundColour = "white"; } Child.BackgroundColour = "red"; }
 <li style="cursor: pointer" class="list-group-item" *ngFor="let Child of children" (click)="onChildSelect(Child)" [style.background-color]="Child.BackgroundColour" >

over 4 years ago · Santiago Trujillo Denunciar

0

Puede cambiar active para que sea una matriz de números que realizaría un seguimiento de todas las categories seleccionadas. Luego puede verificar con active.includes(i) si la category está seleccionada.

Archivo mecanografiado:

 public categories = ['Category 1', 'Category 2', 'Category 3']; public active: number[] = []; chipAdded(index: number): void { if (this.active.includes(index)) { this.active = this.active.filter((item) => item !== index); } else { this.active.push(index); } }

archivo HTML:

 <div *ngFor="let category of categories; let i = index" class="filter-chips px-3" (click)="category.active = true; chipAdded(category)" [ngClass]="category && category.active ? 'chip-clicked': '' "> {{category}} </div>

ejemplo de trabajo

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda