To powinien być prosty problem, ale nie mogę znaleźć rozwiązania.
Mam następujące znaczniki:
<div style="width:20px; height:20px; margin-top:10px; border:solid 1px black; background-color:#ff0000;"></div>
Chcę, aby kolor tła był powiązany z lunetą, więc wypróbowałem to:
<div style="{width:20px; height:20px; margin-top:10px; border:solid 1px black; background-color:{{data.backgroundCol}};}"></div>
To nie zadziałało, więc poszukałem trochę informacji i odkryłem ng-style
, ale to nie zadziałało, więc spróbowałem usunąć część dynamiczną i po prostu zakodować styl na stałe, w ng-style
ten sposób ...
<div ng-style="{width:20px; height:20px; margin-top:10px; border:solid 1px black; background-color:#ff0000;}"></div>
a to nawet nie działa. Czy nie rozumiem, jak to ng-style
działa? Czy istnieje sposób umieszczenia {{data.backgroundCol}}
w zwykłym atrybucie stylu i zmuszenia go do wstawienia wartości?
javascript
angularjs
ng-style
jonhobbs
źródło
źródło
Odpowiedzi:
Dyrektywa ngStyle pozwaladynamicznieustawićstyl CSS na elemencie HTML.
ng-style="{color: myColor}"
Twój kod będzie:
Jeśli chcesz użyć zmiennych zakresu:
Tutaj przykład na skrzypcach, które używają
ngStyle
, a poniżej kodu z działającym fragmentem kodu:źródło
Najłatwiejszym sposobem jest wywołanie funkcji dla stylu i zwrócenie przez funkcję odpowiedniego stylu.
A w kontrolerze:
źródło
Bezpośrednio z
ngStyle
dokumentów :Więc możesz to zrobić:
Mam nadzieję że to pomoże!
źródło
Ogólnie rzecz biorąc, możesz użyć kombinacji stylu ng-if i ng, aby uwzględnić zmiany warunkowe ze zmianą obrazu tła.
źródło
Powiedziałbym, że powinieneś umieścić style, które nie zmienią się w zwykły
style
atrybut, a style warunkowe / zakresowe wng-style
atrybut. Ponadto klucze łańcuchowe nie są konieczne. W przypadku kluczy CSS rozdzielanych myślnikami użyj litery camelcase.źródło
Po prostu zrób to:
źródło