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

221
Vistas
¿Cómo mantener activo el objeto anterior usando ngFor en angular?

Tengo los datos json como se muestra a continuación.

 [ { "route":"vehicle", "next-route":"driver", "isActive":false }, { "title":"Driver", "route":"driver", "next-route":"driver-details", "isActive":false }, { "title":"Driver", "route":"driver-details", "next-route":"quote", "isActive":true }, { "title":"Quote", "route":"quote", "next-route":"", "isActive":false } ]

Estoy tratando de recorrer cada objeto y si el título es el mismo, estoy mostrando solo el primer objeto en la barra de menú. Según el campo isActive (que se actualiza según la ruta), estoy aplicando la clase activa al objeto.

Los siguientes son los 3 títulos que se muestran en la barra de menú y quiero mantener el controlador activo para ambos objetos del controlador.

  • Vehículo
  • Conductor
  • Cotizar

Estoy comparando el título actual con el título anterior y si ambos coinciden, estoy omitiendo ese objeto usando la condición ngIf

 <ul> <ng-container let menu of menuArray; let i=index> <!-- for 0 index there is no title , so ignore --> <ng-container *ngIf=" menu && menu.title && menuArray[i-1].title !== menuArray[i].title"> <li [ngClass]="{active: menu.isActive}"> <div>{{menu.title}}</div> </li> </ng-container> </ng-container> </ul>

Cómo mantener activo el primer objeto de controlador cuando el índice actual está en el segundo objeto de controlador (el segundo objeto de controlador se omitirá en la condición ngIf y no se mostrará en la barra de menú)

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si entiendo bien, creo que solo quieres colocar el primero activo, así que compara si el último estaba activo

 <ng-container *ngIf=" menu && menu.title && (menuArray[i-1].title !== menuArray[i].title || !menuArray[i-1].isActive)">

EDITAR

Acabo de notar que esto es muy similar a la recomendación de @farincz en los comentarios.

about 4 years ago · Juan Pablo Isaza 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