angularjs-logo

La inyección de dependencias es un patrón de diseño de software el cual los componentes de una clase (atributos y métodos) son obtenidos por dependencias de otros objetos (wiki). Esto evita que la clase escriba sus propios métodos y ayuda a desarrollar componentes re-utilizables, mantenibles y fáciles de probar. AngularJS provee un mecanismo de inyección de dependencias. los cuales son:

  • value
  • factory
  • service
  • provider
  • constant

Value

Es un simple objecto javascript que se le pasa al controlador y se instancia en la fase de configuración.

[gist]27a6d3982ab0edbea856[/gist]

Factory

Factory es una función que se llama bajo demanda en cualquier parte de un servicio o controlador. Normalmente son funciones sencillas que realizan operaciones sencillas y retornan valores simples.

[gist]9e357e1851da64dd56a2[/gist]

Service

Un Service es un objeto javascript singleton que contiene un conjunto de funciones que en conjunto realizan una tarea especifica. Un servicio son definido por medio de función service() y son inyectadas al controlador.

[gist]a8a08d2dd0dfc016e8ff[/gist]

Provider

Un proveedor es usando por AngularJS de forma interna para crear services, factories etc. Lo hace durante la fase de configuración. Anteriormente, mencione la creación de un servicio llamado calcService, por medio del método especial get() voy a crear la definición del servicio.

[gist]a86bee577ed456bc3a42[/gist]

Constant

Las constantes son utilizadas para pasar valores en la fase de configuración.

[gist]fd2672c63102f4f09456[/gist]

Ejemplo completo

[gist]83032297a67347f502b0[/gist]

Ejecutarhttps://jsfiddle.net/AFelipeTrujillo/zze9rdp2/13/