Este debería ser un problema simple, pero parece que no puedo encontrar una solución.
Tengo el siguiente marcado:
<div style="width:20px; height:20px; margin-top:10px; border:solid 1px black; background-color:#ff0000;"></div>
Necesito que el color de fondo esté vinculado al alcance, así que probé esto:
<div style="{width:20px; height:20px; margin-top:10px; border:solid 1px black; background-color:{{data.backgroundCol}};}"></div>
Eso no funcionó, así que investigué un poco y encontré ng-style
, pero eso no funcionó, así que intenté sacar la parte dinámica y simplemente codificar el estilo ng-style
, así ...
<div ng-style="{width:20px; height:20px; margin-top:10px; border:solid 1px black; background-color:#ff0000;}"></div>
y eso ni siquiera funciona. ¿Estoy entendiendo mal cómo ng-style
funciona? ¿Hay alguna forma de poner {{data.backgroundCol}}
en un atributo de estilo simple y hacer que inserte el valor?
javascript
angularjs
ng-style
Jonhobbs
fuente
fuente
Respuestas:
La directiva ngStyle le permite establecer el estilo CSS en un elemento HTML de forma dinámica.
ng-style="{color: myColor}"
Tu código será:
Si desea utilizar variables de alcance:
Aquí un ejemplo de violín que usa
ngStyle
, y debajo del código con el fragmento en ejecución:fuente
La forma más sencilla es llamar a una función para el estilo y hacer que la función devuelva el estilo correcto.
Y en tu controlador:
fuente
Directamente desde
ngStyle
docs :Entonces podrías hacer esto:
¡Espero que esto ayude!
fuente
En una nota genérica, puede usar una combinación de ng-if y ng-style para incorporar cambios condicionales con cambio en la imagen de fondo.
fuente
Yo diría que debería poner estilos que no cambiarán en un
style
atributo regular y estilos condicionales / de alcance en unng-style
atributo. Además, las claves de cadena no son necesarias. Para claves CSS delimitadas por guiones, use camelcase.fuente
Simplemente haz esto:
fuente