Dependency Injection je vzorec oblikovanja programske opreme, ki določa način, kako komponente dobijo svoje odvisnosti. Komponente dobijo odvisnosti, namesto da jih težko kodirajo. Ponovno uporabnost in vzdrževalnost je mogoče doseči z uporabo injekcije odvisnosti. Injiciranje vrhovne odvisnosti v lahko izvedejo naslednje komponente:
- Vbrizganje odvisnosti od vrednosti
- Tovarniške injekcije
- Vbrizgavanje storitve v AngularJs
- Ponudnik
- Stalno
Vbrizganje odvisnosti od vrednosti
Preprost objekt v AngularJs je znan kot vrednost. Lahko je niz, številka ali celo objekt JavaScript. Uporablja se lahko za prenos vrednosti v tovarnah, storitvah ali krmilnikih med fazo izvajanja in konfiguriranja.
Primer:
// definiranje modula
var firstModule = angular.module ('firstModule', [])
// ustvarimo objekt vrednosti in mu posredujemo podatke
firstModule.value ('numberValue', 50)
firstModule.value ('stringValue', 'xyz')
firstModule.value ('objectValue', {val1: 456, val2: 'xyz'})
V tem primeru so vrednosti definirane s funkcijo value (). Ime vrednosti določi prvi parameter, drugi parameter pa vrednost. To omogoča tovarnam, storitvam in krmilnikom, da se na te vrednosti sklicujejo že s svojim imenom.
Vbrizgavanje vrednosti
V funkcijo krmilnika AngularJs lahko vbrizgamo vrednost tako, da dodamo parameter z istim imenom kot vrednost.
Primer:
var firstModule = angular.module ('firstModule', [])
firstModule.value ('numberValue', 18)
firstModule.controller ('FirstController', funkcija ($ obseg, numberValue) {
console.log (numberValue)
})
Tovarniške injekcije
Funkcija, ki ustvarja vrednosti, je znana kot tovarna. Vrednost na zahtevo ustvari tovarna, kadar koli servis ali krmilnik potrebuje tovarniško vbrizgano vrednost. Ko je vrednost ustvarjena, se znova uporabi za vse storitve in krmilnike.
Uporablja tovarniško funkcijo za izračun in vrnitev vrednosti.
Primer:
var firstModule = angular.module ('firstModule', [])
firstModule.factory ('firstFactory', function () {
vrni 'vrednost'
})
firstModule.controller ('FirstController', funkcija ($ obseg, firstFactory) {
console.log (firstFactory)
})
Vbrizgavanje vrednosti v tovarno
Vrednost lahko vbrizgate v tovarno z naslednjo metodo:
var firstModule = angular.module ('firstModule', [])
firstModule.value ('numberValue', 29)
firstModule.controller ('FirstController', funkcija ($ obseg, numberValue) {
console.log (numberValue)
})
Treba je opozoriti, da vrednostproizvedena s tovarniško funkcijo, in ne s tovarniško funkcijo. Nadaljujmo s tem člankom vbrizga odvisnosti v AngularJs.
Vbrizgavanje storitve v AngularJs
Enotni objekt JavaScript, ki vsebuje nabor funkcij, je v AngularJ-ih znan kot storitev. Funkcija vsebuje logiko, potrebno za izvajanje storitve. Storitev lahko ustvarite s funkcijo service () na modulu.
struktura podatkov čakalne vrste v javi
Primer:
// definiranje modula
var firstApp = angular.module ('firstApp', [])
...
// ustvarimo storitev, ki definira metodo kvadrat, da vrne kvadrat števila
firstApp.service ('CalciService', funkcija (MathService) {
this.square = funkcija (x) {
vrni MathService.multiply (x, x)
}
})
// vbrizgamo storitev 'CalciService' v krmilnik
firstApp.controller ('CalciController', funkcija ($ obseg, CalciService,
defaultInput) {
$ scope.number = defaultInput
$ scope.result = CalciService.square ($ scope.number)
$ scope.square = function () {
$ scope.result = CalciService.square ($ scope.number)
}
})
tabela, kako ustvariti niz
Ponudnik
Za interno ustvarjanje storitev ali tovarno med fazo konfiguriranja uporabljamo ponudnika. Ponudnik je posebna tovarniška metoda s funkcijo get (), ki se uporablja za vrnitev vrednosti / storitve / tovarne.
Primer:
// definiranje modula
var firstApp = angular.module ('firstApp', [])
...
// z uporabo ponudnika ustvarimo storitev, ki definira kvadrat metode za vrnitev
kvadrat števila.
firstApp.config (funkcija ($ zagotoviti) {
$ provide.provider ('MathService', function () {
to. $ get = function () {
var tovarna =
factory.multiply = funkcija (x, y) {
vrnitev x * y
}
vrnitev tovarne
}
})
})
Stalno
Ker uporabnik ne more vbrizgati vrednosti v funkcijo module.config (), uporabljamo konstante. Konstante se uporabljajo za posredovanje vrednosti v fazi konfiguriranja.
firstApp.constant (“configParam”, “konstantna vrednost”)
Primer:
Zgoraj omenjene direktive je mogoče uporabiti na naslednji način:
Vbrizgavanje odvisnosti
Primer kvadratnega JS kvadratura
Vnesite poljubno številko:
X2.
Rezultat: {{rezultat}}
var firstApp = angular.module ('firstApp', [])
firstApp.config (funkcija ($ zagotoviti) {
$ provide.provider ('MathService', function () {
to. $ get = function () {
var tovarna =
factory.multiply = funkcija (x, y) {
vrnitev x * y
}
vrnitev tovarne
}
})
})
firstApp.value ('defaultInput', 6)
firstApp.factory ('MathService', function () {
var tovarna =
factory.multiply = funkcija (x, y) {
vrnitev x * y
}
vrnitev tovarne
})
firstApp.service ('CalciService', funkcija (MathService) {
this.square = funkcija (x) {
vrni MathService.multiply (x, x)
}
})
kako ustvariti paket Java
firstApp.controller ('CalciController', funkcija ($ obseg, CalciService, defaultInput) {
$ scope.number = defaultInput
$ scope.result = CalciService.square ($ scope.number)
$ scope.square = function () {
$ scope.result = CalciService.square ($ scope.number)
}
})
IZHOD:
S tem smo prišli do konca tega članka o vbrizganju odvisnosti v članku AngularJs. C poglej Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, ki se širijo po vsem svetu.
Imate vprašanje za nas? Prosimo, omenite ga v oddelku za komentarje tega vbrizga odvisnosti v AngularJs, mi pa se vam bomo oglasili.