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

222
Vistas
¿Cómo puedo completar los valores desplegables para cada fila dentro de una tabla de datos?

El siguiente es mi HTML.

 <tr> <th> Test Data </th> <th> Test Data Options </th> </tr> <tr> <td> <ng-container> {{data.testData}} </ng-container> </td> <td class="text-base font-normal"> <ng-container> <p-dropdown [options]="dropdownOptions" placeholder="Select Test Data"></p-dropdown> </ng-container> </td> </tr>

Este es mi archivo JSON.

 “data”: [ { “testData”: “Test Data A”, “testDataOptions”: [ { “testDataOptionValue”: “Test Data A1 Option”, “testDataOptionLabel”: “Test Data A1” }, { “testDataOptionValue”: “Test Data A2 Option”, “testDataOptionLabel”: “Test Data A2” } ], }, { “testData”: “Test Data B”, “testDataOptions”: [ { “testDataOptionValue”: “Test Data B1 Option”, “testDataOptionLabel”: “Test Data B1” }, { “testDataOptionValue”: “Test Data B2 Option”, “testDataOptionLabel”: “Test Data B2” } ], }

¿Cómo podría completar los valores desplegables en cada fila de la tabla de datos según sus índices?

Por ejemplo

Los valores desplegables de la fila Datos de prueba A deben ser: Datos de prueba A1, Datos de prueba A2

Los valores desplegables de la fila Datos de prueba B deben ser: Datos de prueba B1, Datos de prueba B2

Pantalla de muestra

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

0

Supongo que te falta un *ngFor en el fragmento de código que enviaste:

 <tr *ngFor="let data of json.data"> <td>{{ data.testData }}</td> <td> <p-dropdown [options]="data.testDataOptions" optionLabel="testDataOptionLabel" optionValue="testDataOptionValue"></p-dropdown> </td> </tr>

Editar: enlazar el valor seleccionado

Una primera opción, aunque puede parecer extraño según el contexto, es enlazar con el objeto de datos que ya tiene. Por ejemplo:

 <p-dropdown [options]="data.testDataOptions" optionLabel="testDataOptionLabel" optionValue="testDataOptionValue" [(ngModel)]="data.selectedValue"></p-dropdown>

Si eso se siente extraño o simplemente no quiere meterse con esos datos, entonces deberá almacenarlos en una variable separada, que puede ser una matriz o una estructura de clave/valor. Luego, simplemente vincula cada elemento a la entrada correspondiente en la estructura de datos.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Allan te dio la respuesta correcta, solo voy a ampliarla un poco. Dado que su lista de opciones desplegable puede ser grande, considere usar trackBy también. No es obligatorio y no siempre demuestra mucho más rendimiento, pero en general debería ayudar con el rendimiento. Puedes hacerlo así:

 <tr *ngFor="let data of json.data; trackBy: trackByMethod"> <td>{{ data.testData }}</td> <td> <p-dropdown [options]="data.testDataOptions" optionLabel="testDataOptionLabel" optionValue="testDataOptionValue"></p-dropdown> </td> </tr>

Mientras esté en su archivo .ts (asegúrese de agregar algunas ID a sus artículos también, o use otros identificadores únicos):

 trackByMethod = (index: number, item: any): string => item.id;

Puede leer más sobre trackBy aquí: https://dev.to/rfornal/angular-is-trackby-necessary-with-ngfor-594e

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