Это должна быть простая проблема, но я не могу найти решения.
У меня такая разметка:
<div style="width:20px; height:20px; margin-top:10px; border:solid 1px black; background-color:#ff0000;"></div>
Мне нужно, чтобы цвет фона был привязан к области видимости, поэтому я попробовал это:
<div style="{width:20px; height:20px; margin-top:10px; border:solid 1px black; background-color:{{data.backgroundCol}};}"></div>
Это не сработало, поэтому я провел небольшое исследование и обнаружил ng-style
, но это не сработало, поэтому я попытался убрать динамическую часть и просто жестко закодировать стиль ng-style
, вот так ...
<div ng-style="{width:20px; height:20px; margin-top:10px; border:solid 1px black; background-color:#ff0000;}"></div>
и это даже не работает. Я неправильно понимаю, как ng-style
работает? Есть ли способ {{data.backgroundCol}}
вставить атрибут простого стиля и заставить его вставить значение?
javascript
angularjs
ng-style
jonhobbs
источник
источник
Ответы:
Директива ngStyle позволяетдинамическиустанавливатьстиль CSS для элемента HTML.
ng-style="{color: myColor}"
Ваш код будет:
Если вы хотите использовать переменные области:
Вот пример используемой скрипки
ngStyle
и ниже кода с работающим фрагментом:источник
Самый простой способ - вызвать функцию для стиля и заставить функцию вернуть правильный стиль.
И в вашем контроллере:
источник
Непосредственно из
ngStyle
документов :Итак, вы могли сделать это:
Надеюсь это поможет!
источник
В общем случае вы можете использовать комбинацию ng-if и ng-style, чтобы включить условные изменения с изменением фонового изображения.
источник
Я бы сказал, что вы должны поместить стили, которые не будут меняться в обычный
style
атрибут, а стили условных / областей видимости вng-style
атрибут. Кроме того, строковые ключи не нужны. Для ключей CSS, разделенных дефисом, используйте camelcase.источник
Просто сделайте это:
источник