Dependency Injection ir programmatūras projektēšanas modelis, kas norāda veidu, kā komponenti iegūst atkarību. Komponentiem tiek dota viņu atkarība, nevis grūti tos kodēt. Atkārtotu lietošanu un uzturēšanu var panākt, izmantojot atkarības injekciju. Augstākās atkarības injekcija var izdarīt ar šādiem komponentiem:
- Vērtības atkarības injekcija
- Rūpnīcas iesmidzināšana
- Pakalpojuma iesmidzināšana leņķveida Js
- Nodrošinātājs
- Pastāvīgs
Vērtības atkarības injekcija
Vienkāršs objekts AngularJs ir pazīstams kā vērtība. Tas var būt virkne, skaitlis vai pat JavaScript objekts. To var izmantot, lai nodotu vērtības rūpnīcās, pakalpojumos vai kontrolieros palaišanas un konfigurēšanas fāzē.
Piemērs:
// definē moduli
var firstModule = leņķa modulis ('firstModule', [])
// izveidot vērtības objektu un nodot tam datus
firstModule.value ('numberValue', 50)
firstModule.value ('stringValue', 'xyz')
firstModule.value ('objectValue', {val1: 456, val2: 'xyz'})
Šajā piemērā vērtības tiek definētas, izmantojot funkciju value (). Vērtības nosaukumu nosaka pirmais parametrs, un otrais parametrs norāda vērtību. Tas ļauj rūpnīcām, dienestiem un kontrolieriem atsaukties uz šīm vērtībām pēc sava nosaukuma.
Vērtības ievadīšana
Mēs varam ievadīt vērtību AngularJs kontroliera funkcijā, pievienojot parametru ar tādu pašu nosaukumu kā vērtība.
Piemērs:
var firstModule = leņķa modulis ('firstModule', [])
firstModule.value ('numberValue', 18)
firstModule.controller ('FirstController', funkcija ($ sfēra, numberValue) {
console.log (numberValue)
})
Rūpnīcas iesmidzināšana
Funkcija, kas rada vērtības, ir pazīstama kā rūpnīca. Vērtību pēc pieprasījuma izveido rūpnīca ikreiz, kad pakalpojumam vai kontrolierim ir nepieciešama rūpnīcā ievadīta vērtība. Kad vērtība ir izveidota, tā tiek atkārtoti izmantota visiem pakalpojumiem un kontrolieriem.
Tas izmanto rūpnīcas funkciju, lai aprēķinātu un atgrieztu vērtību.
Piemērs:
var firstModule = leņķa modulis ('firstModule', [])
firstModule.factory ('firstFactory', funkcija () {
atgriezt vērtību
})
firstModule.controller ('FirstController', funkcija ($ scope, firstFactory) {
console.log (firstFactory)
})
Vērtību ievadīšana rūpnīcā
Vērtību var ievadīt rūpnīcā ar šādu metodi:
var firstModule = leņķa modulis ('firstModule', [])
firstModule.value ('numberValue', 29)
firstModule.controller ('FirstController', funkcija ($ sfēra, numberValue) {
console.log (numberValue)
})
Jāatzīmē, ka vērtībainjicē rūpnīcas funkcija, nevis pati rūpnīcas funkcija. Pārejam uz šo rakstu par atkarības injicēšanu AngularJs.
Pakalpojuma iesmidzināšana leņķveida Js
Atsevišķs JavaScript objekts, kas satur funkciju kopu, AngularJs ir pazīstams kā pakalpojums. Pakalpojuma veikšanai nepieciešamā loģika ir iekļauta funkcijā. Pakalpojumu var izveidot, izmantojot moduļa funkciju service ().
Piemērs:
// definē moduli
var firstApp = leņķa modulis ('firstApp', [])
...
// izveidot pakalpojumu, kas nosaka metodi kvadrāts, lai atgrieztu skaitļa kvadrātu
firstApp.service ('CalciService', funkcija (MathService) {
hash karte vs hash tabula
this.square = funkcija (x) {
atgriezt MathService.multiply (x, x)
}
})
// ievadiet kontrolierī pakalpojumu “CalciService”
firstApp.controller ('CalciController', funkcija ($ sfēra, CalciService,
defaultInput) {
$ scope.number = defaultInput
$ sfēra.result = CalciService.square ($ sfēra.numurs)
$ scope.square = function () {
$ sfēra.result = CalciService.square ($ sfēra.numurs)
}
})
Nodrošinātājs
Lai iekšēji izveidotu pakalpojumus vai rūpnīcu konfigurācijas posmā, mēs izmantojam pakalpojumu sniedzēju. Nodrošinātājs ir īpaša rūpnīcas metode ar get () funkciju, kas tiek izmantota vērtības / pakalpojuma / rūpnīcas atgriešanai.
Piemērs:
// definē moduli
skaitļa maiņa java
var firstApp = leņķa modulis ('firstApp', [])
...
// izveidot pakalpojumu, izmantojot pakalpojumu sniedzēju, kas nosaka metodes kvadrātu, lai atgrieztu
skaitļa kvadrāts.
firstApp.config (funkcija ($ nodrošināt) {
$ nodrošināt.provider ('MathService', funkcija () {
šī. $ get = funkcija () {
var rūpnīca =
rūpnīca.multiply = function (x, y) {
atgriezties x * y
}
atgriešanās rūpnīca
}
})
})
Pastāvīgs
Tā kā lietotājs nevar ievadīt vērtības module.config (), mēs izmantojam konstantes. Konstantes tiek izmantotas, lai nodotu vērtības konfigurācijas fāzē.
firstApp.constant (“configParam”, “konstanta vērtība”)
Piemērs:
Iepriekš minētās direktīvas var izmantot šādi:
Atkarības injekcija
AngularJS kvadrātveida piemērs
Ievadiet jebkuru numuru:
X2
Rezultāts: {{rezultāts}}
var firstApp = leņķa modulis ('firstApp', [])
firstApp.config (funkcija ($ nodrošināt) {
$ nodrošināt.provider ('MathService', funkcija () {
šī. $ get = funkcija () {
var rūpnīca =
rūpnīca.multiply = function (x, y) {
atgriezties x * y
}
atgriešanās rūpnīca
}
})
})
firstApp.value ('defaultInput', 6)
firstApp.factory ('MathService', funkcija () {
var rūpnīca =
rūpnīca.multiply = function (x, y) {
atgriezties x * y
}
atgriešanās rūpnīca
})
firstApp.service ('CalciService', funkcija (MathService) {
this.square = funkcija (x) {
atgriezt MathService.multiply (x, x)
}
})
kā paaugstināt spēkus java
firstApp.controller ('CalciController', funkcija ($ sfēra, CalciService, defaultInput) {
$ scope.number = defaultInput
$ sfēra.result = CalciService.square ($ sfēra.numurs)
$ scope.square = function () {
$ sfēra.result = CalciService.square ($ sfēra.numurs)
}
})
REZULTĀTS:
Ar to mēs esam nonākuši pie šīs atkarības injekcijas AngularJs rakstā. C heck out Autors: Edureka, uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē.
Vai mums ir jautājums? Lūdzu, pieminējiet to šīs atkarības injekcijas komentāru sadaļā AngularJs, un mēs ar jums sazināsimies.