Necesito poder pasar una cadena dinámica usando fieldName para obtener un atributo dentro del objeto del elemento. Para facilitar la duplicación del problema, he dado un pequeño ejemplo. El problema es que esta sintaxis funciona correctamente con angular 12.2.5 como verifiqué pero no funcionó con angular 12.0.0 o inferior. Simplemente puedo llamar a una función, pero sé que esto no es bueno para el rendimiento. ¿Hay alguna forma alternativa de escribir esta sintaxis para aplicaciones angulares más antiguas?
HTML
<p [style.background]="item?.[fieldName]"> Some Text </p>t
item = { warn: 'yellow', success: 'green', error: 'red' }; fieldName = 'success';El error se ve así
Parser Error: Unexpected token [, expected identifier or keyword at column 20 in [{background: item?.[fieldName]}]Intenta usar el operador ternario ?: :
<p [style.background]="item[fieldName] ? item[fieldName] : ''"> Some Text </p>