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?
- Forskjellen mellom service og fabrikk
- Eksempel på fabrikk i JavaScript
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.
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.