Come implementare l'iniezione di dipendenza in AngularJs



Questo articolo ti fornirà una conoscenza dettagliata e completa di come implementare Dependency Injection in AngularJs.

Dependency Injection è un modello di progettazione software che specifica il modo in cui i componenti acquisiscono le proprie dipendenze. Ai componenti vengono assegnate le loro dipendenze invece di codificarle. La riusabilità e la manutenibilità possono essere ottenute utilizzando l'inserimento delle dipendenze. Supreme Dependency Injection in formato può essere eseguito dai seguenti componenti:





Iniezione della dipendenza dal valore

Un semplice oggetto in AngularJs è noto come valore. Può essere una stringa, un numero o anche un oggetto JavaScript. Può essere utilizzato per passare valori in factory, servizi o controller durante la fase di esecuzione e configurazione.

Esempio:



// definisce un modulo

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

// crea un oggetto valore e gli passa i dati



firstModule.value ('numberValue', 50)

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

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

In questo esempio, i valori vengono definiti utilizzando la funzione value (). Il nome del valore è specificato dal primo parametro e il secondo parametro specifica il valore. Ciò consente alle fabbriche, ai servizi e ai controller di fare riferimento a questi valori con il proprio nome.

Iniezione di un valore

Possiamo iniettare un valore nella funzione del controller AngularJs aggiungendo un parametro con lo stesso nome del valore.

Esempio:

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

firstModule.value ('numberValue', 18)

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

console.log (numberValue)

})

Iniezione di fabbrica

Una funzione che crea valori è nota come factory. Un valore su richiesta viene creato dalla fabbrica, ogni volta che un servizio o un controller necessita di un valore iniettato dalla fabbrica. Una volta creato, il valore viene riutilizzato per tutti i servizi e i controller.

strutture e algoritmi di dati java

Utilizza la funzione factory per calcolare e restituire il valore.

Esempio:

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

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

restituire 'un valore'

})

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

console.log (firstFactory)

})

Iniezione di valori in fabbrica

Un valore può essere iniettato in fabbrica con il seguente metodo:

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

firstModule.value ('numberValue', 29)

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

console.log (numberValue)

})

Va notato che il valoreprodotta dalla funzione di fabbrica viene iniettata, non dalla funzione di fabbrica stessa. Andiamo avanti con questo articolo di Dependency Injection in AngularJs.

Iniezione di servizi in AngularJs

Un oggetto JavaScript singleton che contiene un set di funzioni è noto come servizio in AngularJs. La logica necessaria per lo svolgimento del servizio è contenuta nella funzione. Il servizio può essere creato utilizzando la funzione service () su un modulo.

Esempio:

// definisce un modulo

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

...

// crea un servizio che definisce un metodo quadrato per restituire il quadrato di un numero

firstApp.service ('CalciService', function (MathService) {

this.square = function (x) {

return MathService.multiply (x, x)

}

})

// inietta il servizio 'CalciService' nel controller

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)

}

})

Provider

Per creare internamente servizi o fabbrica durante la fase di configurazione, utilizziamo Provider. Provider è un metodo factory speciale con una funzione get () che viene utilizzata per restituire il valore / servizio / fabbrica.

Esempio:

// definisce un modulo

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

...

// crea un servizio utilizzando il provider che definisce un metodo square per restituire il file

quadrato di un numero.

firstApp.config (function ($ provide) {

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

questo. $ get = function () {

var factory =

factory.multiply = function (x, y) {

restituisce x * y

}

fabbrica di ritorno

}

})

})

Costante

Poiché l'utente non può inserire valori nella funzione module.config (), utilizziamo le costanti. Le costanti vengono utilizzate per passare i valori nella fase di configurazione.

firstApp.constant ('configParam', 'valore costante')

Esempio:

Le direttive sopra menzionate possono essere utilizzate nel modo seguente:

Iniezione di dipendenza

Esempio di squadratura AngularJS

Immettere un numero qualsiasi:

X2

Risultato: {{result}}

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

firstApp.config (function ($ provide) {

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

questo. $ get = function () {

var factory =

factory.multiply = function (x, y) {

tutorial Android Studio per principianti

restituisce x * y

}

fabbrica di ritorno

}

})

})

firstApp.value ('defaultInput', 6)

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

var factory =

factory.multiply = function (x, y) {

restituisce x * y

}

fabbrica di ritorno

})

firstApp.service ('CalciService', function (MathService) {

this.square = function (x) {

return 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)

}

})

PRODUZIONE:

iniezione di dipendenza in angularjs

Con questo, arriviamo alla fine di questo articolo di Dependency Injection in AngularJs. C diamine il da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo.

Hai domande per noi? Per favore menzionalo nella sezione commenti di questa Dependency Injection in AngularJs e ti risponderemo.