„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
- Gamyklos įpurškimas
- Tarnybinis įpurškimas kampiniais J
- Teikėjas
- Nuolatinis
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:
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.