Cómo implementar la inyección de dependencia en AngularJs



Este artículo le proporcionará un conocimiento detallado y completo de cómo implementar la inyección de dependencia en AngularJs.

La inyección de dependencias es un patrón de diseño de software que especifica la forma en que los componentes se apoderan de sus dependencias. Los componentes reciben sus dependencias en lugar de codificarlos. La reutilización y la capacidad de mantenimiento se pueden lograr mediante la inyección de dependencias. Inyección de dependencia suprema en puede realizarse mediante los siguientes componentes:





Inyección de dependencia de valor

Un objeto simple en AngularJs se conoce como valor. Puede ser una cadena, un número o incluso un objeto JavaScript. Se puede utilizar para pasar valores en fábricas, servicios o controladores durante la fase de ejecución y configuración.

Ejemplo:



// definir un módulo

var firstModule = angular.module ('firstModule', [])

// crea un objeto de valor y le pasa datos



firstModule.value ('numberValue', 50)

firstModule.value ('stringValue', 'xyz')

firstModule.value ('objectValue', {val1: 456, val2: 'xyz'})

En este ejemplo, los valores se definen mediante la función value (). El nombre del valor se especifica mediante el primer parámetro y el segundo parámetro especifica el valor. Esto permite que las fábricas, los servicios y los controladores hagan referencia a estos valores por su propio nombre.

Inyectando un valor

Podemos inyectar un valor en la función del controlador AngularJs agregando un parámetro con el mismo nombre que el valor.

Ejemplo:

cadena de análisis de Java hasta la fecha

var firstModule = angular.module ('firstModule', [])

firstModule.value ('numberValue', 18)

firstModule.controller ('FirstController', function ($ scope, numberValue) {

console.log (numberValue)

})

Inyección de fábrica

Una función que crea valores se conoce como fábrica. Un valor bajo demanda lo crea la fábrica, siempre que un servicio o controlador necesite un valor inyectado desde la fábrica. Una vez que se crea el valor, se reutiliza para todos los servicios y controladores.

Hace uso de la función de fábrica para calcular y devolver el valor.

Ejemplo:

var firstModule = angular.module ('firstModule', [])

firstModule.factory ('firstFactory', function () {

devolver 'un valor'

})

firstModule.controller ('FirstController', function ($ scope, firstFactory) {

console.log (firstFactory)

})

Inyectando valores en la fábrica

Se puede inyectar un valor en fábrica mediante el siguiente método:

var firstModule = angular.module ('firstModule', [])

firstModule.value ('numberValue', 29)

firstModule.controller ('FirstController', function ($ scope, numberValue) {

console.log (numberValue)

})

Cabe señalar que el valorproducido por la función de fábrica se inyecta, no la función de fábrica en sí. Sigamos con este artículo de Inyección de dependencias en AngularJs.

Inyección de servicios en AngularJs

Un objeto JavaScript singleton que contiene un conjunto de funciones se conoce como servicio en AngularJs. La lógica necesaria para la ejecución del servicio está contenida en la función. El servicio se puede crear utilizando la función service () en un módulo.

Ejemplo:

// definir un módulo

var firstApp = angular.module ('firstApp', [])

...

// crea un servicio que define un método cuadrado para devolver el cuadrado de un número

firstApp.service ('CalciService', función (MathService) {

this.square = function (x) {

devolver MathService.multiply (x, x)

}

})

// inyecta el servicio 'CalciService' en el controlador

firstApp.controller ('CalciController', función ($ alcance, CalciService,

defaultInput) {

$ scope.number = defaultInput

$ scope.result = CalciService.square ($ scope.number)

$ scope.square = function () {

$ scope.result = CalciService.square ($ scope.number)

}

})

Proveedor

Para crear internamente servicios o fábrica durante la fase de configuración, hacemos uso de Provider. Provider es un método de fábrica especial con una función get () que se utiliza para devolver el valor / servicio / fábrica.

Ejemplo:

// definir un módulo

var firstApp = angular.module ('firstApp', [])

...

// crea un servicio usando el proveedor que define un método cuadrado para devolver el

cuadrado de un número.

firstApp.config (función ($ proporcionar) {

$ provide.provider ('MathService', function () {

this. $ get = function () {

var factory =

factory.multiply = function (x, y) {

return x * y

}

retorno de fábrica

}

})

})

Constante

Dado que el usuario no puede inyectar valores en la función module.config (), hacemos uso de constantes. Las constantes se utilizan para pasar valores en la fase de configuración.

firstApp.constant ('configParam', 'valor constante')

Ejemplo:

Las directivas mencionadas anteriormente se pueden utilizar de la siguiente manera:

Inyección de dependencia

Ejemplo de cuadratura de AngularJS

Ingrese cualquier número:

X2

Resultado: {{resultado}}

var firstApp = angular.module ('firstApp', [])

firstApp.config (función ($ proporcionar) {

$ provide.provider ('MathService', function () {

cómo detener un programa java en código

this. $ get = function () {

var factory =

factory.multiply = function (x, y) {

return x * y

}

retorno de fábrica

}

})

})

firstApp.value ('defaultInput', 6)

firstApp.factory ('MathService', function () {

var factory =

factory.multiply = function (x, y) {

return x * y

}

retorno de fábrica

})

firstApp.service ('CalciService', función (MathService) {

this.square = function (x) {

devolver MathService.multiply (x, x)

}

})

firstApp.controller ('CalciController', function ($ scope, CalciService, defaultInput) {

$ scope.number = defaultInput

$ scope.result = CalciService.square ($ scope.number)

$ scope.square = function () {

$ scope.result = CalciService.square ($ scope.number)

}

})

SALIDA:

inyección de dependencia en angularjs

Con esto, llegamos al final de este artículo de Inyección de dependencia en AngularJs. C diablos el por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo.

Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios de esta inyección de dependencia en AngularJs y nos comunicaremos con usted.