AngularJS es un framework JavaScript muy popular para crear aplicaciones web del lado del cliente con el patrón MVC. Este tutorial es una guía paso a paso que cubre todos los aspectos de AngularJS para crear aplicaciones modernas, desde la instalación de Node.js hasta la creación de controladores y servicios. Incluye ejemplos prácticos y consejos útiles para la creación de aplicaciones personalizadas. A continuación, se detallan los pasos necesarios para crear una aplicación básica con AngularJS.
28
Primeros pasos en AngularJS
AngularJS es un framework de JavaScript que se utiliza para crear aplicaciones en el lado del cliente. En esta guía aprenderás cómo instalar y utilizar AngularJS para empezar a crear aplicaciones web interactivas. Los primeros pasos en AngularJS consisten en:
Instalar Node.js
Para instalar y utilizar AngularJS, se requiere previamente Node.js. Puedes descargar Node.js desde su sitio web oficial. El proceso de instalación es sencillo, solo tienes que seguir las instrucciones y seleccionar el tipo de instalación que mejor se adapte a tus necesidades. Con Node.js instalado, podemos proceder a la próxima sección.
Descargar AngularJS
Ahora descarga desde la página oficial de AngularJS el archivo «angular.js». Una vez descargado, deberás incluirlo en tu archivo HTML:
«` «`
Crear nuestra primera aplicación sencilla
Ahora que ya tenemos Node.js y AngularJS instalados, podemos comenzar a crear nuestra primera aplicación sencilla. Para ello, abre tu editor de código preferido y crea un archivo HTML con el siguiente código:
«`
Hola {{nombre}}!
«`
En este ejemplo, creamos una aplicación sencilla en la que se pide al usuario que introduzca su nombre y luego lo muestra en la página. En el cuerpo de la página, agregamos la directiva ‘ng-app’, que dice a AngularJS que queremos usar esta página como una aplicación AngularJS. Luego creamos un input y una etiqueta, y utilizamos la directiva ‘ng-model’ para enlazar el valor del input a una variable en el ámbito de AngularJS. Finalmente, utilizamos la sintaxis de doble llave ‘{{}}’ para mostrar el valor de la variable ‘nombre’ en la página.
Con esto concluímos los primeros pasos en AngularJS, quedando preparados para seguir creando aplicaciones web más complejas.
Creando nuestra vista
En esta sección, veremos cómo crear una vista en AngularJS con ayuda de las directivas ‘ng-app’ y ‘ng-controller’, y cómo se enlazan los datos usando el data binding. Todo esto nos permitirá mostrar la información de nuestro modelo en la vista.
Crear controlador y vistas
Lo primero que debemos hacer es crear una vista que muestre los datos de nuestro modelo. Para ello, crearemos un controlador en AngularJS que se encargará de almacenar y manipular los datos del modelo y lo asociaremos a la vista que hemos creado.
Data binding para visualizar los datos
Para que los datos almacenados en el controlador se muestren en la vista, usaremos el data binding que proporciona AngularJS. El data binding es una técnica de enlace de datos que enlaza el modelo con la vista. Si los datos del modelo cambian, la vista se actualizará automáticamente.
Directivas ‘ng-app’ y ‘ng-controller’
Las directivas ‘ng-app’ y ‘ng-controller’ son dos de las directivas principales de AngularJS para enlazar nuestras vistas y controladores. La directiva ‘ng-app’ indica el ámbito de la aplicación y la directiva ‘ng-controller’ se utiliza para asociar un controlador con una vista determinada.
- Para crear una aplicación AngularJS, debemos añadir la directiva ‘ng-app’ en la etiqueta ‘html’.
- Luego, creamos un controlador y lo asociamos a la vista con la directiva ‘ng-controller’.
- Pasamos los datos del modelo a la vista usando el binding de AngularJS.
- Finalmente, la vista se actualizará automáticamente cada vez que los datos del modelo cambien.
Con estos sencillos pasos, hemos creado nuestra primera vista en AngularJS. Ahora podemos continuar avanzando en nuestro tutorial y añadir nuevas funcionalidades.
Creando rutas en nuestra aplicación
En esta sección, aprenderemos a crear rutas en nuestra aplicación AngularJS y a asociarlas con distintas vistas. Para ello, utilizaremos el módulo «ngRoute», que nos permite definir rutas dinámicamente y modificar la vista de nuestra aplicación sin tener que recargar la página.
Usando el módulo ‘ngRoute’
El módulo «ngRoute» es el módulo oficial de AngularJS para el enrutamiento de nuestra aplicación. Este módulo nos permite definir una serie de rutas en nuestra aplicación y asignarles distintas vistas. Con «ngRoute», podemos manejar el historial del navegador y actualizar la vista sin necesidad de hacer una petición al servidor.
Definir rutas y vistas asociadas
Para definir una ruta en AngularJS, hay que definir un objeto en la aplicación llamado «route». Cada objeto «route» puede contener un «templateUrl» que apunta a una vista HTML y un «controller» que define el controlador usado en esa vista. Para especificar el parcial que queremos cargar debemos usar la directiva «ng-view».
Para definir las rutas usando «ngRoute», es necesario incluir la dependencia en el archivo .js de nuestra aplicación y configurar el servicio «$routeProvider» que nos ofrece este módulo para definir las rutas. Por ejemplo:
- angular.module(‘myApp’, [‘ngRoute’]); // Definimos nuestra aplicación y añadimos la dependencia de ngRoute
- myApp.config(function($routeProvider) { // Configuramos el servicio routeProvider
- $routeProvider
- .when(‘/ruta’, {
- templateUrl: ‘ruta.html’, // Asociamos la ruta con una vista en HTML
- controller: ‘rutaController’ // Asociamos la ruta con un controlador
- })
- .otherwise({
- redirectTo: ‘/’ // Redireccionamos a la ruta por defecto
- });
- });
En el ejemplo anterior, estamos definiendo una ruta para la URL «/ruta», la cual mostrará una vista en HTML y estará gestionada por el controlador «rutaController». Si la URL no coincide con ninguna definida en la configuración, mostraremos la vista por defecto.
Creando una lista con datos remotos
En esta sección, veremos cómo crear un servicio que llame a una API rest para recuperar una lista de datos y mostrarla en una vista. Aprenderemos a manejar el método .get() de $http para recuperar los datos remotos a través de una url.
Crear servicio que llame a una API Rest
Primero, crearemos el servicio que llame a la API rest utilizando AngularJS ‘ $http servicio. Este servicio es un envoltorio de ajax de bajo nivel que proporciona varias funciones útiles para hacer solicitudes http a través de JavaScript. Definiremos un servicio ‘ItemsService’ con un método ‘getItems’ que haga una solicitud $http utilizando la url proporcionada en el servicio Rest.
- Abra su IDE AngularJS y cree un archivo ‘items.service.js’ dentro de la carpeta ‘services’ de su aplicación AngularJS.
- Defina un servicio llamado ‘ItemsService’ y cree una función llamada ‘getItems’.
- Para su método ‘getItems’, haga una solicitud de $http utilizando la función get con la url de servicio REST.
- Finalmente, devuelva los datos recuperados de la solicitud $http.
Crear vista para mostrar los datos
Ahora que hemos recuperado los datos de la API rest, mostraremos los datos en una vista. Crearemos una nueva vista llamada ‘items.html’ que se encargará de mostrar la lista de elementos en la pantalla. Para esto, utilizaremos las directivas ‘ng-repeat’ y ‘ng-bind’ de AngularJS.
- Cree una nueva vista ‘items.html’ en su carpeta ‘vistas’ y agregue un div con el atributo ‘ng-controller’ asociado al controlador ‘ItemsController’ que crearemos más adelante.
- Utilice la directiva ‘ng-repeat’ para recorrer la lista de elementos recuperados del servicio ‘ItemsService’ y mostrarlos en la vista.
- Utilice la directiva ‘ng-bind’ para mostrar el nombre del elemento en lugar de su valor.
Crear pruebas unitarias para comprobar el servicio
Es importante asegurarnos de que nuestro servicio «ItemsService» funciona correctamente para evitar errores en nuestro código. Para esto, crearemos pruebas unitarias utilizando ‘Karma’ y ‘Jasmine’.
- Cree una nueva carpeta ‘pruebas’ dentro de su proyecto y cree un archivo de prueba ‘items.service.spec.js’ dentro de la carpeta ‘pruebas’.
- Defina una prueba utilizando Jasmine que compruebe que el servicio ‘ItemsService’ existe.
- Defina otra prueba para comprobar que el método ‘getItems’ está definido en el servicio ‘ItemsService’.
- Utilice el servicio de inyección de Angular para inyectar ‘ItemsService’ en su prueba y comprobar que la respuesta de datos es correcta.
Trabajando con eventos en AngularJS
AngularJS ofrece la posibilidad de trabajar con eventos predefinidos y también permite crear eventos personalizados. A continuación, se detallarán ambos tipos de eventos:
Usando eventos predefinidos
Para trabajar con eventos predefinidos en AngularJS, es necesario añadir el atributo apropiado en la etiqueta HTML correspondiente y después definir que función se ejecutará cuando ese evento se produzca. Algunos de los eventos más comunes son:
- ng-click: Se utiliza para detectar cuando se hace clic en un elemento.
- ng-mouseover: Se utiliza para detectar cuando el cursor del ratón pasa por encima de un elemento.
- ng-mouseleave: Se utiliza para detectar cuando el cursor del ratón deja un elemento.
- ng-submit: Se utiliza para detectar cuando se envía un formulario.
Por ejemplo, si queremos detectar cuando se hace clic en un botón, podemos utilizar el evento ‘ng-click’ y definir una función que se ejecutará en ese momento.
Creando eventos personalizados
Además de los eventos predefinidos, AngularJS permite crear eventos personalizados. Para ello, se utiliza el servicio ‘$rootScope’ para crear un nuevo evento. Por ejemplo:
$rootScope.$on('miEvento', function(){
console.log('Evento personalizado "miEvento" se ha disparado');
});
En este ejemplo se crea un evento personalizado llamado ‘miEvento’. Cuando se dispare dicho evento, la función definida será ejecutada y en este caso, imprimirá por consola el mensaje «Evento personalizado ‘miEvento’ se ha producido».
Para disparar este evento personalizado en cualquier punto de nuestra aplicación, sólo tendremos que usar el servicio ‘$rootScope’ y llamar a su método ‘$emit’:
$rootScope.$emit('miEvento');
Ahora es tu turno
Has aprendido lo suficiente como para empezar a crear aplicaciones web con AngularJS. Ahora es el momento de poner en práctica lo que has aprendido y crear tu propia aplicación web única. A continuación, te presentamos una guía básica para ayudarte a comenzar con tu proyecto:
Crea tu propia aplicación web usando AngularJS
Para comenzar, piensa en una idea de aplicación web que sea útil y adecuada para tu nivel de habilidad. La idea debe ser lo suficientemente simple como para ser completada; no te frustres si necesitas empezar con algo muy básico.
Una vez que tengas tu idea, sigue estos pasos para crear tu aplicación web usando AngularJS:
- Crea una carpeta para tu proyecto en tu equipo
- Usa el comando ‘npm init’ para crear un archivo ‘package.json’ que contenga información sobre tu proyecto
- Instala AngularJS usando el comando ‘npm install angular’
- Crea un archivo HTML básico para la estructura de tu aplicación web
- Agrega un script para usar AngularJS en tu archivo HTML
- Define tu aplicación AngularJS en tu archivo JavaScript
- Agrega un controlador para controlar la lógica de tu aplicación web
- Crea una vista para mostrar los datos de tu aplicación
- Agrega directivas y filtros para mejorar la funcionalidad de tu aplicación web
Añadir nuevas vistas y rutas
Ahora que tienes una aplicación web básica en funcionamiento, es hora de agregar más vistas y rutas. Las vistas te permiten mostrar diferentes secciones de tu aplicación, mientras que las rutas son utilizadas por AngularJS para cargar diferentes vistas según la URL. Sigue estos pasos para agregar nuevas vistas y rutas a tu aplicación web:
- Crea nuevas vistas HTML en tu aplicación
- Define nuevas rutas en tu archivo JavaScript usando el módulo ‘ngRoute’
- Agrega enlaces en tu aplicación web para navegar a tus nuevas vistas
- Crea controladores para tus nuevas vistas
Conectar a una base de datos
Ahora que tienes varias vistas y rutas en tu aplicación web, es posible que necesites conectar a una base de datos para almacenar y recuperar datos. Sigue estos pasos para conectar tu aplicación web AngularJS a una base de datos:
- Selecciona una base de datos que sea compatible con AngularJS, como Firebase
- Instala y configura el SDK de Firebase en tu aplicación web
- Usa los servicios de Firebase para enviar y recibir datos de tu base de datos
Utilizar otras herramientas del ecosistema AngularJS para mayor detalle
Hay muchas herramientas útiles incluidas en el ecosistema AngularJS que pueden ayudarte a desarrollar aplicaciones web de alta calidad. Estas herramientas incluyen:
- Angular Material: una biblioteca de componentes que te permite agregar diseños y animaciones profesionales a tu aplicación web.
- Angular CLI: una interfaz de línea de comandos que simplifica la creación y gestión de proyectos de AngularJS.
- UI Router: un complemento de enrutamiento que ofrece una mayor flexibilidad para la creación de rutas.
- Protractor: una herramienta para pruebas unitarias y de extremo a extremo en aplicaciones web AngularJS.
Al utilizar estas herramientas adicionales, podrás mejorar aún más tu proyecto y llevarlo al siguiente nivel. ¡Diviértete creando tu aplicación web con AngularJS!