Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

220
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!