Alt du trenger å vite om fabrikken i AngularJS



Denne artikkelen vil gi deg en detaljert og omfattende kunnskap om Factory in AngularJS og hvordan den skiller seg fra en tjeneste.

gir tjenester som er gjenbrukbare enkeltobjekter. De kan brukes til å dele koden på tvers av brukerne AngularJS-applikasjoner. De kan også injiseres i direktiver, filtre og . I denne artikkelen vil vi forstå fabrikken i AngularJS.

Hva er fabrikken i AngularJS?

Fabrikk er en vinkelfunksjon som brukes til å returnere verdiene. En verdi på forespørsel opprettes av fabrikken når en tjeneste eller kontroller trenger det. Når verdien er opprettet, blir den gjenbrukt for alle tjenester og kontrollere.





Angular Logo - Fabrikk i AngularJS

Vi kan bruke fabrikken til å lage en tjeneste.



Forskjellen mellom service og fabrikk

  • En tjeneste kan defineres på følgende måte:

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

this.sayHola = funksjon () {



console.log ('Hei')

}

})

.Service () -metoden tar navnet og funksjonen som definerer tjenesten. Vi kan injisere det på følgende måte:

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

FirstService.sayHello () // logger 'Hallo'

})

  • En fabrikk kan derimot defineres på følgende måte:

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

endelig og avslutt i Java

komme tilbake {

siHola: funksjon () {

console.log ('Hei')

}

}

})

fabrikk () er også en metode som tar et navn og en funksjon som definerer fabrikken. Vi kan injisere det på samme måte som å injisere en tjeneste. Den største forskjellen mellom en tjeneste og en fabrikk er at vi returnere et objekt bokstavelig når det gjelder fabrikk (i stedet for å bruke dette). Årsaken er at tjenesten er en konstruktørfunksjon mens en fabrikk ikke er det.

  • For å få en bedre forståelse, la oss ta en titt på fabrikkfunksjonen ():

function fabrikk (navn, factFn, håndheve) {

returleverandør (navn, {

$ get: håndheve! == usann? enforceReturnValue (name, factFn): factFn

})

}

I koden gitt ovenfor tar det navnet og den godkjente fabrikkfunksjonen. Den returnerer en leverandør med samme navn, sammen med en$ fåmetode (som er fabrikkfunksjonen). Dette skyldes grunnen til at når injektoren blir bedt om en bestemt avhengighet, spør injektoren leverandøren om en forekomst av denne tjenesten ved å ringe$ få ()metode.

  • Ved injisering av FirstService blir fabrikkfunksjonene kalt:

FirstServiceProvider. $ Get () // returner forekomsten av tjenesten

  • For servicekoden:

funksjonstjeneste (navn, konstruktør) {

returner fabrikk (navn, ['$ injektor', funksjon ($ injektor) {

returner $ injector.instantiate (konstruktør)

}])

}

Når vi ringerservice (), fabrikk ()er den som faktisk kalles. Dette gjøres ved å passere en funksjon som ber injektoren om å instansisere et objekt av konstruktøren. I enklere termer kaller tjenesten en forhåndsdefinert fabrikk.

$ injector.instantiate ()kallerObject.create ()med konstruktorfunksjonen. Det er hvorfor dette brukes i tjenester.

Eksempel på fabrikk i JavaScript

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

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

returner 'en verdi'

})

hvordan du bruker filen i java

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

console.log (firstFactory)

})

Injisere verdier i fabrikken

En verdi kan injiseres i fabrikken etter følgende metode:

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

firstModule.value ('numberValue', 29)

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

console.log (numberValue)

})

MERK: Det må bemerkes at verdien produsert av fabrikkfunksjonen injiseres, ikke selve fabrikkfunksjonen.

Med dette kommer vi til en slutt på denne Factory in AngularJS-artikkelen. Jeg håper du fikk forståelse for hva som egentlig er en fabrikk og hvordan den skiller seg fra en tjeneste.

Cpokker ut av Edureka, et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden. Angular er et JavaScript-rammeverk som brukes til å lage skalerbare, applikasjons- og ytelsesprogrammer på klientsiden. Med adopsjon av kantete rammeverk er ytelsesstyring av applikasjonen indirekte drevet for bedre jobbmuligheter. Angular Certification Training tar sikte på å dekke alle disse nye konseptene rundt Enterprise Application Development.