Kā īstenot atkarības injicēšanu AngularJs



Šis artikuls sniegs jums detalizētas un visaptverošas zināšanas par to, kā īstenot atkarības injekciju AngularJs.

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

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:

atkarības injekcija angularjs

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.