Cómo aplicar varias propiedades de objeto a ngStyle
Tengo un elemento en mi HTML como este:
<span [ngstyle]="{'background': getColor(selectedOption.type)}">BLAH</span>
Tengo una condición en mi archivo TS como esta:
public getColor(type: string) {
switch (type) {
case 'General':
return {background: '#ffe5d7', color: '#e7560a'};
case 'Interview':
return {background: '#ffe5d7', color: '#e7560a'};
// más código
}
Básicamente, si el usuario selecciona “General”, quiero que el color de fondo y el color de fuente correctos sean devueltos por la función y aplicados al elemento usando ngStyle. Pero esto no está funcionando correctamente. ¿Qué estoy haciendo mal?
davy.ai
Respuesta:
El
ngStyle
espera un objeto con propiedades CSS como su valor, pero tu funcióngetColor
devuelve un objeto con las propiedadesbackground
ycolor
. Para solucionar este problema, modifica tu métodogetColor
para que solo devuelva la propiedadbackground
.Por ejemplo:
Luego, en tu HTML, aplica el valor devuelto a la propiedad
background-color
del objetongStyle
, de esta manera:Esto debería establecer el color de fondo del elemento
span
según el tipo seleccionado. Si también necesitas establecer el color de la fuente, puedes usar la propiedadcolor
y aplicar un atributongStyle
separado:En este ejemplo, el método
getFontColor
devolvería el color de fuente apropiado según el tipo seleccionado.