Allt du behöver veta om fabriken i AngularJS



Denna artikel ger dig en detaljerad och omfattande kunskap om Factory in AngularJS och hur den skiljer sig från en tjänst.

tillhandahåller tjänster som är återanvändbara singleton-objekt. De kan användas för att dela koden mellan användarna AngularJS-applikationer. De kan också injiceras i direktiv, filter och . I den här artikeln kommer vi att förstå fabriken i AngularJS.

Vad är fabrik i AngularJS?

Fabrik är en vinkelfunktion som används för att returnera värdena. Ett värde på begäran skapas av fabriken närhelst en tjänst eller styrenhet behöver det. När värdet har skapats återanvänds det för alla tjänster och styrenheter.





Angular Logo - Fabrik i AngularJS

Vi kan använda fabriken för att skapa en tjänst.



Skillnaden mellan service och fabrik

  • En tjänst kan definieras på följande sätt:

app.service ('FirstService', funktion () {

this.sayHola = funktion () {



console.log ('Hej')

}

})

Metoden .service () tar namnet och funktionen som definierar tjänsten. Vi kan injicera det på följande sätt:

java system.exit (1)

app.controller ('AppController', funktion (FirstService) {

FirstService.sayHello () // loggar 'Hej'

})

  • En fabrik kan å andra sidan definieras på följande sätt:

app.factory ('FirstService', funktion () {

lämna tillbaka {

sayHola: funktion () {

console.log ('Hej')

}

}

})

fabrik () är också en metod som tar ett namn och en funktion som definierar fabriken. Vi kan injicera det på samma sätt som att injicera en tjänst. Den största skillnaden mellan en tjänst och en fabrik är att vi returnera ett objekt bokstavligt när det gäller fabrik (istället för att använda detta). Anledningen är att tjänsten är en konstruktörfunktion medan en fabrik inte är det.

  • För en bättre förståelse, låt oss ta en titt på fabriksfunktionen ():

function-fabrik (namn, factFn, enforce) {

returleverantör (namn, {

$ get: enforce! == false? enforceReturnValue (name, factFn): factFn

})

}

I koden ovan tar det namnet och den godkända fabriksfunktionen. Den returnerar en leverantör med samma namn, tillsammans med en$ fåmetod (som är fabriksfunktionen). Detta beror på anledningen att när injektorn frågas om ett specifikt beroende ber injektorn leverantören om en instans av den tjänsten genom att ringa$ get ()metod.

  • När FirstService injiceras kallas fabriksfunktionerna:

FirstServiceProvider. $ Get () // returnera instansen av tjänsten

  • För servicekoden:

funktionstjänst (namn, konstruktör) {

returnera fabrik (namn, ['$ injektor', funktion ($ injektor) {

returnera $ injector.instantiate (konstruktör)

}])

}

vad används vårramen för

När vi ringerservice (), fabrik ()är den som faktiskt kallas. Detta görs genom att passera en funktion som ber injektorn att instansiera ett objekt av konstruktören. I enklare termer kallar tjänsten en fördefinierad fabrik.

$ injector.instantiate ()ringerObject.create ()med konstruktörfunktionen. Det är därför detta används i tjänster.

Exempel på fabrik i JavaScript

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

firstModule.factory ('firstFactory', funktion () {

returnera 'ett värde'

})

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

console.log (firstFactory)

})

Injicera värden i fabriken

Ett värde kan injiceras till fabriken enligt följande metod:

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

firstModule.value ('numberValue', 29)

firstModule.controller ('FirstController', funktion ($ scope, numberValue) {

sqoop-import från oracle till hdfs

console.log (numberValue)

})

NOTERA: Det måste noteras att det värde som produceras av fabriksfunktionen injiceras, inte själva fabriksfunktionen.

Med detta kommer vi till ett slut på denna Factory in AngularJS-artikel. Jag hoppas att du förstår vad exakt en fabrik är och hur den skiljer sig från en tjänst.

Check ut av Edureka, ett pålitligt online-lärande företag med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen. Angular är ett JavaScript-ramverk som används för att skapa skalbara webbapplikationer på klientsidan för företag och prestanda. Eftersom antagandet av kantiga ramar är högt, är prestationshantering av applikationen samhällsstyrd indirekt och driver bättre jobbmöjligheter. Angular Certification Training syftar till att täcka alla dessa nya koncept kring utveckling av Enterprise Application.