Alles wat u moet weten over de fabriek in AngularJS



Dit artikel geeft u een gedetailleerde en uitgebreide kennis van Factory in AngularJS en hoe deze verschilt van een service.

biedt services die herbruikbare singleton-objecten zijn. Ze kunnen worden gebruikt om de code te delen met de AngularJS-applicaties van de gebruikers. Ze kunnen ook worden geïnjecteerd in richtlijnen, filters en . In dit artikel zullen we de fabriek in AngularJS begrijpen.

Wat is Fabriek in AngularJS?

Fabriek is een hoekfunctie die wordt gebruikt om de waarden te retourneren. Een waarde op aanvraag wordt gecreëerd door de fabriek, wanneer een service of controller dit nodig heeft. Zodra de waarde is gecreëerd, wordt deze hergebruikt voor alle services en controllers.





Angular Logo - Fabriek in AngularJS

We kunnen de fabriek gebruiken om een ​​service te creëren.



Verschil tussen service en fabriek

  • Een service kan op de volgende manier worden gedefinieerd:

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

this.sayHola = function () {



console.log ('Hallo')

}

})

De .service () methode heeft de naam en de functie die de service definieert. We kunnen het op de volgende manier injecteren:

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

FirstService.sayHello () // logt 'Hallo' in

})

  • Een fabriek daarentegen kan als volgt worden gedefinieerd:

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

terug {

sayHola: function () {

console.log ('Hallo')

}

}

})

factory () is ook een methode waaraan een naam en functie moet worden doorgegeven die de fabriek definiëren. We kunnen het op dezelfde manier injecteren als het injecteren van een dienst. Het grote verschil tussen een service en een fabriek is dat wij geef een object letterlijk terug in het geval van de fabriek (in plaats van dit te gebruiken). De reden is dat service een constructorfunctie is en een fabriek dat niet is.

  • Laten we voor een beter begrip eens kijken naar de fabrieksfunctie ():

function factory (naam, factFn, afdwingen) {

retourprovider (naam, {

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

})

}

In de bovenstaande code heeft het de naam en de doorgegeven fabrieksfunctie. Het retourneert een provider met dezelfde naam, samen met een$ krijgenmethode (dit is de fabrieksfunctie). Dit komt door de reden dat telkens wanneer de injector om een ​​specifieke afhankelijkheid wordt gevraagd, de injector de provider om een ​​exemplaar van die service vraagt ​​door de$ krijgen ()methode.

  • Bij het injecteren van FirstService worden de fabrieksfuncties aangeroepen:

FirstServiceProvider. $ Get () // retourneert de instantie van de service

  • Voor de servicecode:

functie service (naam, constructor) {

return factory (name, ['$ injector', function ($ injector) {

return $ injector.instantiate (constructor)

}])

}

Als we bellenservice (), fabriek ()is degene die eigenlijk wordt genoemd. Dit wordt gedaan door een functie door te geven die de injector vraagt ​​om een ​​object te instantiëren door de constructor. In eenvoudiger bewoordingen roept de service een vooraf gedefinieerde fabriek op.

$ injector.instantiate ()roept deObject.create ()met de constructorfunctie. Dat is de reden deze wordt gebruikt in services.

Voorbeeld van Factory in JavaScript

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

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

retourneer 'een waarde'

})

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

is een postdoctorale masteropleiding

console.log (firstFactory)

})

Waarden in de fabriek injecteren

Een waarde kan op de volgende manier in de fabriek worden geïnjecteerd:

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

firstModule.value ('numberValue', 29)

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

console.log (numberValue)

})

OPMERKING: Opgemerkt moet worden dat de waarde die wordt geproduceerd door de fabrieksfunctie wordt geïnjecteerd, niet de fabrieksfunctie zelf.

Hiermee komen we aan het einde van dit Factory in AngularJS-artikel. Ik hoop dat je begrijpt wat een fabriek precies is en hoe deze verschilt van een dienst.

Cach uit de door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. Angular is een JavaScript-framework dat wordt gebruikt om schaalbare, zakelijke en performante webtoepassingen aan de clientzijde te maken. Omdat Angular framework-acceptatie hoog is, wordt het prestatiebeheer van de applicatie indirect gestuurd door de gemeenschap, wat leidt tot betere kansen op werk. De Angular Certification Training is bedoeld om al deze nieuwe concepten rond Enterprise Application Development te behandelen.