Alt hvad du behøver at vide om fabrik i AngularJS



Denne artikel giver dig en detaljeret og omfattende viden om Factory in AngularJS, og hvordan den adskiller sig fra en service.

leverer tjenester, der er genanvendelige singleton-objekter. De kan bruges til at dele koden på tværs af brugerne AngularJS applikationer. De kan også indsprøjtes i direktiver, filtre og . I denne artikel vil vi forstå fabrikken i AngularJS.

Hvad er fabrik i AngularJS?

Fabrik er en vinkelfunktion, der bruges til at returnere værdierne. En værdi efter behov skabes af fabrikken, når en tjeneste eller en controller har brug for det. Når værdien er oprettet, genbruges den til alle tjenester og controllere.





Angular Logo - Fabrik i AngularJS

Vi kan bruge fabrikken til at oprette en service.



Forskellen mellem service og fabrik

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

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

this.sayHola = funktion () {



console.log ('Hej')

}

})

Metoden .service () tager navnet og den funktion, der definerer tjenesten. Vi kan injicere det på følgende måde:

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

FirstService.sayHello () // logger 'Hej'

})

  • En fabrik kan derimod defineres på følgende måde:

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

Vend tilbage {

sayHola: funktion () {

console.log ('Hej')

}

}

})

fabrik () er også en metode, der tager et navn og en funktion, der definerer fabrikken. Vi kan indsprøjte det på samme måde som at indsprøjte en tjeneste. Den største forskel mellem en service og en fabrik er, at vi returnere et objekt bogstaveligt i tilfælde af fabrik (i stedet for at bruge dette). Årsagen er, at service er en konstruktørfunktion, mens en fabrik ikke er det.

  • For en bedre forståelse, lad os se på fabriksfunktionen ():

function fabrik (navn, factFn, håndhæve) {

returudbyder (navn, {

$ get: håndhæve! == falsk? enforceReturnValue (name, factFn): factFn

})

}

I ovenstående kode tager det navnet og den godkendte fabriksfunktion. Det returnerer en udbyder med samme navn sammen med en$ fåmetode (som er fabriksfunktionen). Dette skyldes grunden til, at når injektoren bliver bedt om en bestemt afhængighed, beder injektoren udbyderen om en forekomst af denne service ved at ringe til$ get ()metode.

  • Ved injektion af FirstService kaldes fabriksfunktionerne:

FirstServiceProvider. $ Get () // returner forekomsten af ​​tjenesten

  • For servicekoden:

funktionstjeneste (navn, konstruktør) {

returner fabrik (navn, ['$ injektor', funktion ($ injektor) {

returnere $ injector.instantiate (konstruktør)

}])

}

Når vi ringerservice (), fabrik ()er den, der faktisk kaldes. Dette gøres ved at passere en funktion, der beder injektoren om at instantiere et objekt af konstruktøren. I enklere vendinger kalder service en foruddefineret fabrik.

$ injector.instantiate ()kalderObject.create ()med konstruktionsfunktionen. Det er derfor dette bruges i tjenester.

Eksempel på fabrik i JavaScript

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

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

returner 'en værdi'

})

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

console.log (firstFactory)

})

Indsprøjtning af værdier til fabrikken

brug python i visual studio

En værdi kan injiceres på fabrikken ved hjælp af følgende metode:

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

firstModule.value ('numberValue', 29)

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

console.log (numberValue)

})

BEMÆRK: Det skal bemærkes, at den værdi, der produceres af fabriksfunktionen, indsprøjtes, ikke selve fabriksfunktionen.

Med dette kommer vi til en afslutning på denne fabrik i AngularJS-artikel. Jeg håber, du har fået en forståelse af, hvad der nøjagtigt er en fabrik, og hvordan den adskiller sig fra en service.

Check ud af af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Angular er en JavaScript-ramme, der bruges til at oprette skalerbare, virksomheds- og performance-klientesides webapplikationer. Da vedtagelsen af ​​kantede rammer er høj, styres applikationsstyring af applikationen indirekte, hvilket giver bedre jobmuligheder. Angular Certification Training sigter mod at dække alle disse nye koncepter omkring Enterprise Application Development.