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
.
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
.
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.
ng-show
/ ng-hide
acepta solo boolean
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)
ng-show="User=='admin' || User=='teacher'"
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.
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.
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
Algunas de estas respuestas anteriores no funcionaron para mí, pero esto sí. En caso de que alguien más tenga el mismo problema.
ng-show="column != 'vendorid' && column !='billingMonth'"
false
, es posible que desee verificar dos veces esos valores. Es posible que los objetos "globales" y / o "mapeados" seanundefined