Uno de los efectos más utilizados es el mostrar y ocultar, ya que de una forma sencilla hacemos que opciones de un menú aparezcan o no según las acciones del usuario o del modelo, AngularJS nos permite incorporarlo de una forma sencilla con las directivas ng-shgow y ng-hide.
Mostrar y Ocultar
Si nuestra aplicación es compleja seguramente tendremos elementos que son sensitivos al contexto, es decir, podremos utilizar alguna herramienta si se dan las condiciones correctas o tal vez debamos ocultar algunas opciones del menú cuando se den ciertas condiciones.
Así con estos funcionamientos nuestra lógica es la que va a dictar cual emplearemos en nuestras aplicaciones, estas directivas funcionan trabajando con los estilos de los elementos donde se aplican, así que si trabajamos con las propiedades display:block para mostrar y display:none para ocultar, como vemos nada que no conozcamos o que sea muy complejo para no aprender.
Ejemplo Práctico
En el siguiente ejemplo vamos a trabajar haciendo que un menú se muestre o no si hacemos click sobre una opción que lo controla, para ello debemos hacer lo siguiente:
1- En un archivo HTML vamos a incluir AngularJS y luego vamos a generar el controlador que nos ayudará en nuestra tarea, el código del controlador debe controlar las acciones del menú y tendría una función o método que efectúa el cambio al trabajar con los estados de la directiva, en este caso trabajaremos con ng-show, veamos el código necesario:
function MostrarOcultarController($scope) { $scope.menuState = {} $scope.menuState.show = false; $scope.cambiarMenu = function() { $scope.menuState.show = !$scope.menuState.show; }; }
2- Luego debemos preparar nuestros elementos HTML de forma que podamos aplicar la directiva de AngularJS, para ello definimos el $scope del controlador y finalmente aplicamos la directiva ng-show al listado, veamos:
<div ng-controller='MostrarOcultarController'> <button ng-click='cambiarMenu()'>Cambiar Menu</button> <ul ng-show='menuState.show'> <li ng-click='accion1()'>accion1</li> <li ng-click='accion2()'>accion2</li> <li ng-click='accion3()'>accion3</li> </ul> <div/>
Ya con esto nuestro menú debería mostrarse u ocultarse según hagamos click en el botón correspondiente, veamos como luce en nuestro navegador en ambos estados. Aquí podemos ver el estado inicial sin elementos en el menú:
Luego al hacer click sobre el botón podemos ver como aparece el menú, abajo está el código que detecta nuestra consola Javascript para demostrar el funcionamiento de AngularJS:
Notamos que en el código de la consola desapareció la clase ng-hide dejando así ver el menú correctamente.
Con este finalizamos este tutorial donde hemos aprendido a utilizar las propiedades de mostrar y ocultar cuando construimos una aplicación en AngularJS.