Inyección de dependencias en Aurelia

Aurelia, framework javascript

El sistema de inyección de dependencias en Aurelia es muy sencillo de utilizar, gracias al decorador @inject, si estamos trabajando con ecmascript 2016, @autoinject, si estamos trabajando con typescript y la propiedad de ámbito estático inject en cualquiera de ellos, incluyendo escamscript 2015, podemos inyectar dependencias de forma realmente sencilla.

Si no conoces el concepto de inyección de dependencias, esto es lo que dice la wikipedia:

  • En informática, inyección de dependencias (en inglés Dependency Injection, DI) es un patrón de diseño orientado a objetos, en el que se suministran objetos a una clase en lugar de ser la propia clase quien cree el objeto.

Pues lo dicho, en lugar de crear cierta funcionalidad dentro de un mismo componente, lo que debemos hacer es separar todas esa lógica en muchos trozos y después utilizarla donde necesitemos haciendo uso de inyección de dependencias.

Enlaces que te pueden interesar:

Para entender cómo trabaja la inyección de dependencias en Aurelia, vamos a crear un archivo dentro de app/src/services llamado heroes.js con el siguiente código el cuál va a simular un servicio que podamos inyectar en cualquier zona de la aplicación.


Ahora sólo nos restaría utilizar este servicio haciendo uso de la inyección de dependencias en Aurelia, así que abre el archivo app.js y modifica el código por el siguiente a modo de ejemplo.


Primero debemos importar inject y después simplemente pasar la dependencia al constructor de nuestra clase, de esta forma tan sencilla ya tenemos el servicio disponible en la clase app y podremos separar nuestra lógica tanto como necesitemos.

Si necesitamos pasar más dependencias sólo tenemos que pasar cada una de ellas al decorador @inject separadas por una coma.

Añade un comentario

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR