Este deve ser um problema simples, mas não consigo encontrar uma solução.
Eu tenho a seguinte marcação:
<div style="width:20px; height:20px; margin-top:10px; border:solid 1px black; background-color:#ff0000;"></div>
Preciso que a cor de fundo seja associada ao escopo, então tentei o seguinte:
<div style="{width:20px; height:20px; margin-top:10px; border:solid 1px black; background-color:{{data.backgroundCol}};}"></div>
Isso não funcionou, então eu fiz algumas pesquisas e descobri ng-style
, mas não funcionou, então tentei retirar a parte dinâmica e apenas embutir o estilo no código ng-style
, assim ...
<div ng-style="{width:20px; height:20px; margin-top:10px; border:solid 1px black; background-color:#ff0000;}"></div>
e isso nem funciona. Estou entendendo mal como ng-style
funciona? Existe uma maneira de {{data.backgroundCol}}
inserir um atributo de estilo simples e fazer com que ele insira o valor?
javascript
angularjs
ng-style
Jonhobbs
fonte
fonte
Respostas:
A diretiva ngStyle permite que você defina oestilo CSS em um elemento HTML dinamicamente.
ng-style="{color: myColor}"
Seu código será:
Se você quiser usar variáveis de escopo:
Aqui está um exemplo de violino que uso
ngStyle
, e abaixo o código com o snippet em execução:fonte
A maneira mais fácil é chamar uma função para o estilo e fazer com que a função retorne o estilo correto.
E em seu controlador:
fonte
Diretamente dos
ngStyle
documentos :Então você pode fazer isso:
Espero que isto ajude!
fonte
Em uma nota genérica, você pode usar uma combinação de ng-if e ng-style incorporar mudanças condicionais com mudança na imagem de fundo.
fonte
Eu diria que você deve colocar estilos que não mudam em um
style
atributo regular e estilos condicionais / escopo em umng-style
atributo. Além disso, as chaves de string não são necessárias. Para chaves CSS delimitadas por hífen, use camelcase.fonte
Basta fazer isso:
fonte