AngularJS - Introducción: Servicios

La idea de AngularJS es mantener los controladores para el enlace de datos y reducir su carga lógica, es decir, AngularJS pretende separar responsabilidades. Por lo tanto, los encargados de tareas comunes y de la mayor parte de nuestra lógica de negocio con los datos serán los servicios. Formalmente, los servicios son objetos singleton que realizan tareas comunes a varias partes del sistema.

Esto se puede ver fácilmente con un ejemplo. Necesitamos obtener información mediante una petición HTTP. La petición podría realizarse desde el controlador, sin embargo, esto consigue un código excesivamente acoplado y sin ninguna separación entre responsabilidades. Si la petición HTTP la sacamos del controlador y la encapsulamos en un servicio habremos conseguido separar las responsabilidades. Es más, si deseamos realizar la misma petición desde otro lugar de la aplicación simplemente debemos utilizar el servicio que hemos creado.

En el siguiente ejemplo se puede ver un servicio que está siendo utilizado para obtener datos de personas y que se muestran en una lista:
Se puede ver el uso del servicio como origen de datos y además en el HTML la directiva ng-repeat que nos permite recorrer una lista de elementos en la vista y "pintar" el contenido de la etiqueta por cada elemento de la lista.

En este punto conviene destacar que servicio, factoría y proveedor a menudo se utilizan como intercambiables. De hecho los tres nos permiten realizar la misma funcionalidad y la misma separación de responsabilidades. La diferencia entre ellos radica en el nivel de configuración que se puede conseguir con cada uno de ellos.

Aprendiendo AngularJS

NOTA: el signo de '$' es utilizado por AngularJS como prefijo para servicios y objetos propios. Por lo tanto, es conveniente no utilizar el prefijo '$' al crear servicios

Comentarios

Entradas populares de este blog

Función __doPostBack

Procesos Linux - exec y fork

malloc vs calloc