Cela devrait être un problème simple, mais je n'arrive pas à trouver une solution.
J'ai le balisage suivant:
<div style="width:20px; height:20px; margin-top:10px; border:solid 1px black; background-color:#ff0000;"></div>
J'ai besoin que la couleur d'arrière-plan soit liée à la portée, alors j'ai essayé ceci:
<div style="{width:20px; height:20px; margin-top:10px; border:solid 1px black; background-color:{{data.backgroundCol}};}"></div>
Cela n'a pas fonctionné, alors j'ai fait des recherches et trouvé ng-style
, mais cela n'a pas fonctionné, alors j'ai essayé de supprimer la partie dynamique et de coder en dur le style ng-style
, comme ça ...
<div ng-style="{width:20px; height:20px; margin-top:10px; border:solid 1px black; background-color:#ff0000;}"></div>
et cela ne fonctionne même pas. Suis-je mal compris comment ng-style
fonctionne? Existe-t-il un moyen de mettre {{data.backgroundCol}}
dans un attribut de style simple et de le faire insérer la valeur?
javascript
angularjs
ng-style
Jonhobbs
la source
la source
Réponses:
La directive ngStyle vous permet de définirdynamiquement le style CSS sur un élément HTML.
ng-style="{color: myColor}"
Votre code sera:
Si vous souhaitez utiliser des variables de portée:
Voici un exemple sur le violon qui utilise
ngStyle
, et ci-dessous le code avec l'extrait de code en cours d'exécution:la source
Le moyen le plus simple consiste à appeler une fonction pour le style et à demander à la fonction de renvoyer le style correct.
Et dans votre contrôleur:
la source
Directement à partir de la
ngStyle
documentation :Vous pouvez donc faire ceci:
J'espère que cela t'aides!
la source
Sur une note générique, vous pouvez utiliser une combinaison de ng-if et ng-style incorporer des modifications conditionnelles avec changement de l'image d'arrière-plan.
la source
Je dirais que vous devriez mettre des styles qui ne changeront pas en un
style
attribut normal et des styles conditionnels / de portée dans unng-style
attribut. De plus, les clés de chaîne ne sont pas nécessaires. Pour les clés CSS séparées par des tirets, utilisez camelcase.la source
Faites simplement ceci:
la source