Quiero hacerlo:
ng-hide="!globals.isAdmin && mapping.is_default"
pero la expresión evalúa siempre a false
.
No quiero definir una función especial en $scope
.
attributes
angularjs
expression
Pablo
fuente
fuente
false
, es posible que desee verificar dos veces esos valores. Es posible que los objetos "globales" y / o "mapeados" seanundefined
Respuestas:
Utilice un método de controlador si necesita ejecutar código JavaScript arbitrario, o podría definir un filtro que devuelva verdadero o falso.
Acabo de probar (debería haber hecho eso primero), y algo como
ng-show="!a && b"
funcionó como se esperaba.fuente
ng-show
/ng-hide
acepta soloboolean
valores.Para expresiones complejas, es bueno usar el controlador y el alcance para evitar complicaciones.
Debajo de uno funcionará (no es una expresión muy compleja)
Aquí el elemento se mostrará en la interfaz de usuario cuando cualquiera de las dos condiciones devuelva verdadero (operación OR).
De esta manera, puedes usar cualquier expresión.
fuente
Esto funcionará si no tiene demasiadas expresiones.
Ejemplo:
ng-show="form.type === 'Limited Company' || form.type === 'Limited Partnership'"
Para más expresiones que esta, use un controlador.
fuente
This will work if you do not have too many expressions.
aunque estoy de acuerdo en que debería hacerse en el controlador.Generalmente trato de evitar expresiones con ng-show y ng-hide, ya que fueron diseñadas como booleanos, no condicionales. Si necesito lógica condicional y booleana, prefiero poner la lógica condicional usando ng-if como primera verificación, luego agregar una verificación adicional para la lógica booleana con ng-show y ng-hide
Sin embargo, si desea usar un condicional para ng-show o ng-hide, aquí hay un enlace con algunos ejemplos: Visualización condicional usando ng-if, ng-show, ng-hide, ng-include, ng-switch
fuente
Algunas de estas respuestas anteriores no funcionaron para mí, pero esto sí. En caso de que alguien más tenga el mismo problema.
fuente