Estoy manejando mi problema de esta manera:
ng-style="{ width: getTheValue() }"
Pero para evitar tener esta función en el lado del controlador, preferiría hacer algo como esto:
ng-style="{ width: myObject.value == 'ok' ? '100%' : '0%' }"
¿Cómo puedo hacer esto?
angularjs
angularjs-directive
TigrouMeow
fuente
fuente
Respuestas:
Como dijo @Yoshi, desde angular 1.1.5 puede usarlo sin ningún cambio.
Si usa angular <1.1.5, puede usar ng-class .
fuente
ejemplo simple:
{'background-color': 'green'} RETURN true
O el mismo resultado:
Otra posibilidad condicional:
fuente
isTrue
y{'background-color':'green'}
O solo se va a verificarisTrue
y sebackground
explicará cómo funcionará, ¿puede explicar a alguien?Puedes lograrlo así:
fuente
@jfredsilva obviamente tiene la respuesta más simple para la pregunta:
Sin embargo, es posible que desee considerar mi respuesta para algo más complejo.
Ejemplo ternario:
Algo más complejo:
Si
$scope.color == 'blueish'
, el color será 'azul'.Si
$scope.zoom == 2
, el tamaño de fuente será 26px.fuente
{<value>:'<string>'}[<$scope.var>]}
, ¿de dónde viene?si quieres usar con expresión, la forma correcta es:
pero la mejor manera es usar ng-class
fuente
Syntax Error: Token '%3A' is%20an%20unexpected%20token at column 9 of the expression [ng-style%3A%
...En una nota genérica, puede usar una combinación
ng-if
eng-style
incorporar cambios condicionales con cambios en la imagen de fondo.fuente
Uncaught Error: Template parse errors: Can't bind to 'ng-style' since it isn't a known property of 'div'
errorPara una sola propiedad css
Para múltiples propiedades CSS a continuación se puede referir
Reemplace 1 == 1 con su expresión de condición
fuente
También esta sintaxis para el operador ternario funcionará:
donde
<value>
están los valores de propiedad $ scope. Por ejemplo:`` `
esto permite un cálculo en los valores de propiedad css.
fuente
Estoy haciendo lo siguiente para condiciones múltiples e independientes y funciona a las mil maravillas:
fuente
Estoy usando ng-class para agregar estilo: -
Uso del operador ternario junto con directivas de clase ng en angular.js para dar estilo. A continuación, defina el estilo de clase en .css o .scss archivo. P.ej :-
fuente
No estoy seguro de cómo funciona para ustedes, pero en Angular 9 tengo que poner ngStyle entre paréntesis de esta manera:
De lo contrario no funciona
fuente