Dependency Injection je vzor návrhu softvéru, ktorý určuje spôsob, akým sa komponenty zmocňujú svojich závislostí. Komponenty dostanú svoje závislosti namiesto toho, aby ich pevne kódovali. Opätovnú použiteľnosť a udržiavateľnosť je možné dosiahnuť použitím injekcie závislostí. Injekcia najvyššej závislosti v je možné vykonať pomocou nasledujúcich komponentov:
- Injekcia závislostí na hodnote
- Factory Injection
- Servisné vstrekovanie v AngularJs
- Poskytovateľ
- Neustále
Injekcia závislostí na hodnote
Jednoduchý objekt v AngularJs je známy ako hodnota. Môže to byť reťazec, číslo alebo dokonca objekt JavaScript. Môže sa použiť na odovzdávanie hodnôt v továrňach, službách alebo radičoch počas fázy behu a konfigurácie.
Príklad:
// definovanie modulu
var firstModule = angular.module ('firstModule', [])
ako používať iterátor
// vytvorí hodnotový objekt a odovzdá mu údaje
firstModule.value ('numberValue', 50)
firstModule.value ('stringValue', 'xyz')
firstModule.value ('objectValue', {val1: 456, val2: 'xyz'})
V tomto príklade sú hodnoty definované pomocou funkcie value (). Názov hodnoty je určený prvým parametrom a druhý parameter určuje hodnotu. To umožňuje továrňam, službám a radičom odkazovať na tieto hodnoty vlastným menom.
Vloženie hodnoty
Hodnotu môžeme vložiť do funkcie ovládača AngularJs pridaním parametra s rovnakým názvom ako hodnota.
Príklad:
var firstModule = angular.module ('firstModule', [])
firstModule.value ('numberValue', 18)
firstModule.controller ('FirstController', function ($ scope, numberValue) {
console.log (numberValue)
})
Factory Injection
Funkcia, ktorá vytvára hodnoty, sa nazýva továreň. Hodnotu na požiadanie vytvára továreň, kedykoľvek služba alebo kontrolór potrebuje hodnotu vloženú z výroby. Po vytvorení hodnoty sa znova použije pre všetky služby a radiče.
Využíva továrenské funkcie na výpočet a vrátenie hodnoty.
Príklad:
var firstModule = angular.module ('firstModule', [])
firstModule.factory ('firstFactory', function () {
vrátiť 'hodnotu'
})
firstModule.controller ('FirstController', function ($ scope, firstFactory) {
console.log (firstFactory)
})
Vkladanie hodnôt do továrne
Hodnotu je možné vložiť do továrne nasledujúcim spôsobom:
var firstModule = angular.module ('firstModule', [])
firstModule.value ('numberValue', 29)
firstModule.controller ('FirstController', function ($ scope, numberValue) {
console.log (numberValue)
})
Je potrebné poznamenať, že hodnotavstrekuje sa výrobná funkcia, nie samotná továrenská funkcia. Poďme ďalej k tomuto článku o Dependency Injection v AngularJs.
Servisné vstrekovanie v AngularJs
Jeden objekt JavaScript, ktorý obsahuje množinu funkcií, sa v AngularJs označuje ako služba. Logika nevyhnutná na vykonávanie služby je obsiahnutá vo funkcii. Službu je možné vytvoriť pomocou funkcie service () na module.
Príklad:
// definovanie modulu
var firstApp = angular.module ('firstApp', [])
...
// vytvoriť službu, ktorá definuje metódu štvorec vráti štvorček čísla
firstApp.service ('CalciService', funkcia (MathService) {
this.square = function (x) {
vrátiť MathService.multiply (x, x)
}
})
// vložiť do radiča službu „CalciService“
firstApp.controller ('CalciController', function ($ scope, CalciService,
defaultInput) {
$ scope.number = defaultInput
$ scope.result = CalciService.square ($ scope.number)
$ scope.square = funkcia () {
$ scope.result = CalciService.square ($ scope.number)
}
})
Poskytovateľ
Na interné vytváranie služieb alebo výroby počas fázy konfigurácie využívame Poskytovateľa. Poskytovateľ je špeciálna továrenská metóda s funkciou get (), ktorá sa používa na vrátenie hodnoty / služby / továrne.
Príklad:
// definovanie modulu
var firstApp = angular.module ('firstApp', [])
...
// vytvorí službu pomocou poskytovateľa, ktorý definuje štvorček metódy na vrátenie
štvorec čísla.
firstApp.config (funkcia ($ provide) {
$ provide.provider ('MathService', function () {
toto. $ get = function () {
var továreň =
factory.multiply = funkcia (x, y) {
návrat x * r
}
vrátiť továreň
}
})
})
Neustále
Pretože užívateľ nemôže vkladať hodnoty do funkcie module.config (), využívame konštanty. Konštanty sa používajú na odovzdanie hodnôt vo fáze konfigurácie.
firstApp.constant („configParam“, „konštantná hodnota“)
Príklad:
Vyššie uvedené smernice sa dajú použiť nasledujúcim spôsobom:
Injekcia závislostí
Príklad kvadratúry AngularJS
Zadajte ľubovoľné číslo:
X2
Výsledok: {{result}}
var firstApp = angular.module ('firstApp', [])
firstApp.config (funkcia ($ provide) {
$ provide.provider ('MathService', function () {
toto. $ get = function () {
var továreň =
factory.multiply = funkcia (x, y) {
návrat x * r
}
vrátiť továreň
}
})
})
firstApp.value ('defaultInput', 6)
firstApp.factory ('MathService', function () {
var továreň =
factory.multiply = funkcia (x, y) {
návrat x * r
}
vrátiť továreň
})
firstApp.service ('CalciService', funkcia (MathService) {
this.square = function (x) {
vrátiť MathService.multiply (x, x)
}
})
firstApp.controller ('CalciController', function ($ scope, CalciService, defaultInput) {
$ scope.number = defaultInput
$ scope.result = CalciService.square ($ scope.number)
$ scope.square = funkcia () {
$ scope.result = CalciService.square ($ scope.number)
}
})
ako obsadiť dvojité na int
VÝKON:
Týmto sa dostávame na koniec tohto článku Dependency Injection v AngularJs. C. sakra autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete.
Máte na nás otázku? Uveďte to prosím v sekcii komentárov v tejto Injekcii závislostí v AngularJs a my sa vám ozveme.