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.

Error de interpolación en Angular, resultado indefinido.

Tengo un problema de interpolación que necesito resolver algo que proviene de una API como esto,

{columna1=6.022, columna2=0.0, columna3=3.14.....,columnaN=5.55 }

A veces solo hay una ‘columna’, a veces vienen 30 ‘columna’, así que necesito interpolarlos fácilmente, y para eso lo estoy haciendo en un archivo html.


   columna{{numero}} =  {{ columna[numero] }}

Y en el archivo component.ts:

for (let xk = 1; xk < maxCols; xk++) {
      this.arregCols[this.arregCols.length] = xk.toString();
}

No sé si estoy realizando una interpolación incorrecta.

Lo que esperaba obtener es:

columna1 = 6.022
columna2 = 0.0
columna3 = 3.14
...
columnaN = 5.55

Pero no obtengo nada más que:

ERROR TypeError: No se pueden leer propiedades de indefinido
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está en la forma en que estás intentando acceder a los valores en el objeto columna. El mensaje de error indica que la propiedad que estás intentando acceder es indefinida, lo que probablemente significa que el objeto no tiene esa propiedad.

    Puedes intentar comprobar si la propiedad existe antes de intentar acceder a ella, de esta manera:

    <ng-container *ngFor="let numero of arregCols">
      columna{{numero}} =  {{ columna[numero] ? columna[numero] : 'N/A' }}
    </ng-container>
    

    Este código comprobará si la propiedad columna[numero] existe, y si no lo hace, mostrará ‘N/A’ en lugar de lanzar un error. Puedes modificar el valor ‘N/A’ por lo que tenga sentido para tu caso de uso.

    Espero que esto te ayude a resolver el problema y lograr el resultado esperado.

Comments are closed.