es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obteniendo NaN al usar índice + 1.

El siguiente enunciado me está dando NaN para {{ i + 1}}:

<td mat-cell *matCellDef="let element; let i = index;" style="text-align: center; padding-right: 3px;">{{i + 1}}</td>

He intentado muchas cosas y no lo consigo bien.

<ng-container matColumnDef="sl">
  <th mat-header-cell *matHeaderCellDef mat-sort-header style="text-align: center;"> Nº de serie </th>
  <td mat-cell *matCellDef="let element; let i = index;" style="text-align: center; padding-right: 3px;">{{i + 1}}</td>
  <td mat-footer-cell *matFooterCellDef style="color: white; border: none;"></td>
</ng-container>

<ng-container matColumnDef="sl">
   <th mat-header-cell *matHeaderCellDef mat-sort-header style="text-align: center;"> Nº de serie </th>
   <td mat-cell *matCellDef="let element; let i = index;" style="text-align: center; padding-right: 3px;">{{Number(i) + 1}}</td>
   <td mat-footer-cell *matFooterCellDef style="color: white; border: none;"></td>
</ng-container>
Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está con la variable i que no está siendo reconocida como un número. Hay un par de posibles soluciones para esto:

    1. Convertir i explícitamente a un número usando la función Number():
      <td mat-cell="" *matcelldef="let element; let i = index;" style="text-align: center; padding-right: 3px;">{{Number(i) + 1}}</td>
      
    2. Asegurarse de que i siempre sea un número inicializándolo con 0:
      <td mat-cell="" *matcelldef="let element; let i = index || 0;" style="text-align: center; padding-right: 3px;">{{i + 1}}</td>
      

    Cualquiera de estas soluciones debería asegurar que la expresión {{i + 1}} da un número válido y el error NaN se resuelve.

Comments are closed.