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

439
Vistas
Angular2 Obtener referencia al elemento creado en ngFor

¿Cómo haría para hacer referencia a un elemento en el dom que se creó en un bucle ngFor?

por ejemplo, tengo una lista de elementos sobre los que itero:

 var cookies: Cookie[] = [...]; <div *ngFor="#cookie of cookies" id="cookie-tab-button-{{cookie.id}}" (click)="showcookie(cookie);">Cookie tab</div> <div *ngFor="#cookie of cookies" id="cookie-tab-content-{{cookie.id}}" ">Cookie Details</div>

¿Cómo haría referencia a estos divs, para poder agregar una clase css como "is-active"? ¿O mi enfoque es simplemente incorrecto?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Si desea agregar/eliminar una clase, use el enlace

 <div *ngFor="let cookie of cookies" [class.isActive]="someExpression" ....>

o

 <div *ngFor="let cookie of cookies" [ngStyle]="{'isActive': someExpression}" ....>

Ejemplo concreto:

 activeCookie:string = 'b'; cookies:string[] = ['a', 'b', 'c'];
 <div *ngFor="letcookie of cookies" [class.isActive]="cookie == activeCookie" ....>

Si realmente quieres obtener una referencia, puedes usar

 <div #someName *ngFor="let cookie of cookies" id="cookie-tab-button-{{cookie.id}}" (click)="showcookie(cookie);">Cookie tab</div> @ViewChildren('someName') someDivs; ngAfterViewInit() { // or some event handler someDivs.toArray()[0].nativeElement.classList.add('isActive'); }
over 4 years ago · Santiago Trujillo Denunciar

0

<style> .active{ background:blue; } </style> <div [ngClass]="{active:(i==selectedIndex)}" *ngFor="#cookie of cookies;#i=index" id="cookie-tab-button-{{cookie.id}}" (click)="showcookie(cookie,i);">Cookie tab </div> showcookie(val, i){ console.log(val + i); this.selectedIndex=i; }
over 4 years ago · Santiago Trujillo Denunciar

0

Puede usar ng-container que no se representará:

 <ng-container *ngFor="let cookie of cookies"> <div id="cookie-tab-button-{{cookie.id}}" (click)="showcookie(cookie);">Cookie tab</div> </ng-container>
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