Alles wat u moet weten over Factory in AngularJS

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

  • Wat is Factory in AngularJS?
  • Verschil tussen Service en Factory
  • Voorbeeld van Factory in JavaScript

Wat is Factory in AngularJS?

Factory is een angular functie die wordt gebruikt om de waarden terug te keren. Een waarde op aanvraag wordt gemaakt door de fabriek, wanneer een service of controller nodig heeft. Als de waarde eenmaal is gemaakt, wordt deze hergebruikt voor alle services en controllers.

Angular Logo - Factory in AngularJS

We kunnen de fabriek gebruiken om een service te maken.

Verschil tussen Service en Factory

  • Een service kan op de volgende manier worden gedefinieerd:

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

this.sayHola = function () {

console.log('Hola');

};

});

The .service() method takes the name and the function that defines the service. We can inject it in the following way:

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

FirstService.sayHola(); // logs 'Hola'

});

  • Een fabriek, kan daarentegen op de volgende manier worden gedefinieerd:

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

return {

sayHola: function () {

console.log('Hola');

}

}

});

factory() is ook een methode die een naam en een functie neemt die de fabriek definieert. We kunnen deze op dezelfde manier injecteren als een service. Het grote verschil tussen een service en een factory is dat we in het geval van factory een object letterlijk teruggeven (in plaats van dit te gebruiken). De reden hiervoor is dat een service een constructorfunctie is, terwijl een factory dat niet is.

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

function factory(name, factFn, enforce) {

return provider(name, {

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

});

}

In de bovenstaande code neemt deze de naam en de doorgegeven fabrieksfunctie aan. Het retourneert een provider met dezelfde naam, samen met een $get-methode (dat is de fabrieksfunctie). De reden hiervoor is dat wanneer de injector om een specifieke afhankelijkheid wordt gevraagd, de injector de provider om een instantie van die service vraagt door de $get()-methode op te roepen.

  • Bij het injecteren van FirstService worden de fabrieksfuncties aangeroepen:

FirstServiceProvider.$get(); // return the instance of the service

  • Voor de servicecode:

function service(name, constructor) {

return factory(name, );

}

Wanneer we service(), factory() aanroepen, is dit de functie die daadwerkelijk wordt aangeroepen. Dit wordt gedaan door een functie door te geven die de injector vraagt een object te instantiëren door de constructor. Eenvoudiger gezegd: de service roept een vooraf gedefinieerde fabriek aan.

$injector.instantiate() roept de Object.create() met de constructorfunctie aan. Daarom wordt dit in services gebruikt.

Exemplaar van een fabriek in JavaScript

var firstModule = angular.module("firstModule", );

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

return "a value";

});

firstModule.controller("FirstController", function($scope, firstFactory) {

console.log(firstFactory);

});

Waarden injecteren in fabriek

Een waarde kan in een fabriek worden geïnjecteerd met de volgende methode:

var firstModule = angular.module("firstModule", );

firstModule.value("numberValue", 29);

firstModule.controller("FirstController", function($scope, numberValue) {

console.log(numberValue);

});

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

Hiermee zijn we aan het einde gekomen van dit Factory in AngularJS artikel. Ik hoop dat je hebt begrepen wat een fabriek precies is en hoe het verschilt van een service.

Bekijk de Angular-training van Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden cursisten verspreid over de hele wereld. Angular is een JavaScript-framework dat wordt gebruikt om schaalbare, enterprise, en prestaties client-side web applicaties te creëren. Met Angular kader adoptie is hoog, performance management van de toepassing is community-gedreven indirect rijden betere kansen op werk. De Angular Certificatie Training is gericht op het behandelen van al deze nieuwe concepten rond Enterprise Application Development.

Plaats een reactie