Tutto quello che dovete sapere su Factory in AngularJS

AngularJS fornisce servizi che sono oggetti singleton riutilizzabili. Possono essere utilizzati per condividere il codice tra gli utenti delle applicazioni AngularJS. Possono anche essere iniettati in direttive, filtri e controller. In questo articolo, capiremo la fabbrica in AngularJS.

  • Che cos’è la fabbrica in AngularJS?
  • Differenza tra servizio e fabbrica
  • Esempio di fabbrica in JavaScript

Che cos’è la fabbrica in AngularJS?

La fabbrica è una funzione angolare che viene utilizzata per restituire i valori. Un valore su richiesta è creato dalla factory, ogni volta che un servizio o un controller ne ha bisogno. Una volta che il valore è creato, viene riutilizzato per tutti i servizi e controllori.

 Logo Angular - Factory in AngularJS

Possiamo usare la factory per creare un servizio.

Differenza tra servizio e factory

  • Un servizio può essere definito nel seguente modo:

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'

});

  • Un factory, d’altra parte può essere definita nel modo seguente:

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

return {

sayHola: function () {

console.log('Hola');

}

}

});

factory() è anche un metodo che prende un nome e una funzione che definisce la factory. Possiamo iniettarlo nello stesso modo in cui iniettiamo un servizio. La differenza principale tra un servizio e una fabbrica è che nel caso di factory restituiamo un oggetto letterale (invece di usare questo). Il motivo è che il servizio è una funzione costruttrice, mentre una factory non lo è.

  • Per una migliore comprensione, diamo un’occhiata alla funzione factory():

function factory(name, factFn, enforce) {

return provider(name, {

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

});

}

Nel codice dato sopra, prende il nome e la funzione factory passata. Restituisce un provider con lo stesso nome, insieme a un metodo $get (che è la funzione di fabbrica). Questo è dovuto al fatto che ogni volta che all’iniettore viene richiesta una dipendenza specifica, l’iniettore chiede al fornitore un’istanza di quel servizio chiamando il metodo $get().

  • Sull’iniezione di FirstService, le funzioni di fabbrica vengono chiamate:

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

  • Per il codice del servizio:

function service(name, constructor) {

return factory(name, );

}

Quando si chiama service(), factory() è quella che viene effettivamente chiamata. Questo viene fatto passando una funzione che chiede all’iniettore di istanziare un oggetto tramite il costruttore. In termini più semplici, il servizio chiama una fabbrica predefinita.

$injector.instantiate() chiama il Object.create() con la funzione costruttore. Questo è il motivo per cui viene usato nei servizi.

Esempio di fabbrica in JavaScript

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

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

return "a value";

});

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

console.log(firstFactory);

});

Iniezione di valori nella fabbrica

Un valore può essere iniettato nella fabbrica con il seguente metodo:

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

firstModule.value("numberValue", 29);

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

console.log(numberValue);

});

NOTA: Bisogna notare che viene iniettato il valore prodotto dalla funzione factory, non la funzione factory stessa.

Con questo, arriviamo alla fine di questo articolo su Factory in AngularJS. Spero che tu abbia capito cos’è esattamente una factory e come si differenzia da un servizio.

Guarda la formazione Angular di Edureka, una società di apprendimento online di fiducia con una rete di più di 250.000 studenti soddisfatti sparsi in tutto il mondo. Angular è un framework JavaScript che viene utilizzato per creare applicazioni web scalabili, aziendali e performanti lato client. Con l’adozione del framework Angular che è alto, la gestione delle prestazioni dell’applicazione è guidata dalla comunità che indirettamente guida migliori opportunità di lavoro. La formazione di certificazione Angular mira a coprire tutti questi nuovi concetti intorno allo sviluppo di applicazioni aziendali.

Lascia un commento