Tutto ciò che devi sapere sulla fabbrica in AngularJS

Questo articolo ti fornirà una conoscenza dettagliata e completa di Factory in AngularJS e di come si differenzia da un servizio.

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

Cos'è la fabbrica in AngularJS?

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





Angular Logo - Fabbrica in AngularJS

Possiamo usare la fabbrica per creare un servizio.



Differenza tra servizio e fabbrica

  • Un servizio può essere definito nel modo seguente:

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

this.sayHola = function () {



console.log ('Hello')

}

})

Il metodo .service () prende il nome e la funzione che definisce il servizio. Possiamo iniettarlo nel modo seguente:

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

FirstService.sayHello () // registra 'Hello'

})

  • Una fabbrica, invece, può essere definita nel modo seguente:

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

ritorno {

è difficile da imparare

sayHola: function () {

console.log ('Hello')

}

}

})

factory () è anche un metodo che prende un nome e una funzione che definisce la factory. Possiamo iniettarlo nello stesso modo in cui iniettare un servizio. La principale differenza tra un servizio e una fabbrica è che noi restituisce un oggetto letterale nel caso di fabbrica (invece di usarlo). Il motivo è che il servizio è una funzione di costruzione mentre una fabbrica non lo è.

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

funzione fabbrica (name, factFn, enforce) {

provider di restituzione (nome, {

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

})

}

Nel codice riportato sopra, prende il nome e la funzione factory passata. Restituisce un provider con lo stesso nome, insieme a un file$ getmetodo (che è la funzione di fabbrica). Ciò è 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$ get ()metodo.

  • Quando si inserisce FirstService, le funzioni di fabbrica vengono chiamate:

FirstServiceProvider. $ Get () // restituisce l'istanza del servizio

  • Per il codice di servizio:

funzione servizio (nome, costruttore) {

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

return $ injector.instantiate (costruttore)

}])

}

Quando chiamiamoservizio (), fabbrica ()è quello che viene effettivamente chiamato. Questo viene fatto passando una funzione che chiede all'iniettore di istanziare un oggetto dal costruttore. In termini più semplici, il servizio chiama una fabbrica predefinita.

$ injector.instantiate ()chiama ilObject.create ()con la funzione costruttore. È per questo Questo è utilizzato nei servizi.

Esempio di Factory in JavaScript

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

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

restituire 'un valore'

})

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

console.log (firstFactory)

cos'è un errore chiave in python

})

Iniezione di valori in fabbrica

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

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

firstModule.value ('numberValue', 29)

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

console.log (numberValue)

})

NOTA: Va notato che viene iniettato il valore prodotto dalla funzione di fabbrica, non la funzione di fabbrica stessa.

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

Cdiamine il da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Angular è un framework JavaScript utilizzato per creare applicazioni web lato client scalabili, aziendali e ad alte prestazioni. Poiché l'adozione del framework Angular è elevata, la gestione delle prestazioni dell'applicazione è guidata dalla comunità indirettamente, offrendo migliori opportunità di lavoro. L'Angular Certification Training mira a coprire tutti questi nuovi concetti sullo sviluppo di applicazioni aziendali.