Ako implementovať injektáž závislostí v AngularJs



Tento artil vám poskytne podrobné a komplexné vedomosti o tom, ako implementovať Dependency Injection v AngularJs.

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

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:

injekcia závislosti v angularjs

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.