Kaip įgyvendinti priklausomybės injekciją „AngularJ“



Šis artilas suteiks jums išsamių ir išsamių žinių, kaip įgyvendinti priklausomybės injekciją „AngularJ“.

„Dependency Injection“ yra programinės įrangos projektavimo modelis, nurodantis komponentų priklausomybės suvokimo būdą. Komponentams suteikiama priklausomybė, užuot juos užkodavus. Pakartotinį tinkamumą naudoti ir prižiūrėti galima naudojant priklausomybės injekciją. Aukščiausios priklausomybės injekcija gali būti padaryta šiais komponentais:



Vertės priklausomybės injekcija

Paprastas „AngularJs“ objektas yra žinomas kaip reikšmė. Tai gali būti eilutė, skaičius ar net „JavaScript“ objektas. Jis gali būti naudojamas perduoti reikšmes gamyklose, tarnybose ar valdikliuose vykdymo ir konfigūravimo etape.

Pavyzdys:



// apibrėžti modulį

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

// sukurti vertės objektą ir perduoti jam duomenis



firstModule.value ('numberValue', 50)

firstModule.value („stringValue“, „xyz“)

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

Šiame pavyzdyje vertės apibrėžiamos naudojant funkciją value (). Vertės pavadinimą nurodo pirmasis parametras, o antrasis parametras nurodo vertę. Tai suteikia galimybę gamykloms, tarnyboms ir valdikliams šias vertes nurodyti savo vardu.

Vertės įšvirkštimas

Vertę į „AngularJs“ valdiklio funkciją galime įterpti pridėdami parametrą tokiu pačiu pavadinimu kaip ir reikšmė.

Pavyzdys:

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

„firstModule.value“ („numberValue“, 18)

firstModule.controller ('FirstController', funkcija ($ sritis, numberValue) {

console.log (numberValue)

})

Gamyklos įpurškimas

Vertes kurianti funkcija vadinama gamykla. Vertę pagal pareikalavimą sukuria gamykla, kai paslaugai ar valdikliui reikalinga vertė, įterpta iš gamyklos. Sukūrus vertę, ji vėl naudojama visoms paslaugoms ir valdikliams.

Ji naudoja gamyklos funkciją, kad apskaičiuotų ir grąžintų vertę.

Pavyzdys:

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

„firstModule.factory“ („firstFactory“, funkcija () {

grąžinti „a value“

})

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

console.log (firstFactory)

})

Vertybių įpurškimas į gamyklą

Vertę į gamyklą galima įvesti tokiu metodu:

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

„firstModule.value“ („numberValue“, 29)

firstModule.controller ('FirstController', funkcija ($ sritis, numberValue) {

console.log (numberValue)

})

Reikia pažymėti, kad vertėgaminama pagal gamyklos funkciją, o ne pati gamyklos funkcija. Pereikime prie šio priklausomybės injekcijos „AngularJ“ straipsnyje.

Tarnybinis įpurškimas kampiniais J

Pavienis „JavaScript“ objektas, kuriame yra funkcijų rinkinys, „AngularJ“ yra žinomas kaip paslauga. Logika, reikalinga paslaugai atlikti, yra funkcijoje. Paslaugą galima sukurti naudojant modulio funkciją service ().

Pavyzdys:

// apibrėžti modulį

var firstApp = kampinis. modulis ('firstApp', [])

...

// sukurti paslaugą, apibrėžiančią metodą kvadratas grąžinti skaičiaus kvadratą

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

this.square = funkcija (x) {

grąžinti MathService.multiply (x, x)

}

įdiekite php "Windows 7"

})

// į valdiklį įšvirkškite paslaugą „CalciService“

firstApp.controller ('CalciController', funkcija ($ taikymo sritis, CalciService,

defaultInput) {

$ sritis.number = defaultInput

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

$ scope.square = function () {

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

}

})

Teikėjas

Norėdami konfigūracijos etape kurti paslaugas ar gamyklas, mes naudojame paslaugų teikėją. Teikėjas yra specialus gamyklos metodas su funkcija get (), kuri naudojama norint grąžinti vertę / paslaugą / gamyklą.

Pavyzdys:

// apibrėžti modulį

var firstApp = kampinis. modulis ('firstApp', [])

...

// sukurkite paslaugą naudodamiesi teikėju, kuris apibrėžia metodo kvadratą, kad grąžintų

skaičiaus kvadratas.

firstApp.config (funkcija ($ suteikti) {

$ suteikti.provider ('MathService', funkcija () {

tai. $ get = funkcija () {

var fabrikas =

gamykla.multtiply = funkcija (x, y) {

grąžinti x * y

}

grąžinimo gamykla

}

})

})

Nuolatinis

Kadangi vartotojas negali įterpti reikšmių į modulį.config (), naudojame konstantas. Konstantos naudojamos perduoti reikšmes konfigūracijos etape.

firstApp.constant („configParam“, „pastovi vertė“)

Pavyzdys:

Aukščiau paminėtas direktyvas galima naudoti taip:

kas yra java ide

Priklausomybės injekcija

KampinisJS kvadrato pavyzdys

Įveskite bet kurį numerį:

X2

Rezultatas: {{rezultatas}}

var firstApp = kampinis. modulis ('firstApp', [])

firstApp.config (funkcija ($ suteikti) {

$ suteikti.provider ('MathService', funkcija () {

tai. $ get = funkcija () {

var fabrikas =

gamykla.multtiply = funkcija (x, y) {

grąžinti x * y

}

grąžinimo gamykla

}

})

})

firstApp.value („defaultInput“, 6)

firstApp.factory („MathService“, funkcija () {

var fabrikas =

gamykla.multtiply = funkcija (x, y) {

grąžinti x * y

}

grąžinimo gamykla

})

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

this.square = funkcija (x) {

grąžinti MathService.multiply (x, x)

}

})

firstApp.controller ('CalciController', funkcija ($ taikymo sritis, CalciService, defaultInput) {

$ sritis.number = defaultInput

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

$ scope.square = function () {

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

}

})

IŠĖJIMAS:

priklausomybės injekcija angularjs

Tuo mes baigėme šį priklausomybės injekciją „AngularJs“ straipsnyje. C Heck out the sukūrė „Edureka“ - patikima internetinė mokymosi įmonė, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą.

Turite mums klausimą? Prašau paminėti tai „AngularJs“ priklausomybės injekcijos komentarų skyriuje ir mes su jumis susisieksime.