Tot ce trebuie să știți despre fabrică în AngularJS



Acest articol vă va oferi o cunoaștere detaliată și cuprinzătoare despre Factory în AngularJS și despre diferența față de un serviciu.

oferă servicii care sunt obiecte singulare reutilizabile. Acestea pot fi utilizate pentru a partaja codul între aplicațiile AngularJS ale utilizatorilor. Ele pot fi, de asemenea, injectate în directive, filtre și . În acest articol, vom înțelege fabrica din AngularJS.

Ce este Factory în AngularJS?

Fabrica este o funcție unghiulară care este utilizată pentru a returna valorile. O valoare la cerere este creată din fabrică, ori de câte ori un serviciu sau un controler are nevoie de aceasta. Odată ce valoarea este creată, aceasta este reutilizată pentru toate serviciile și controlorii.





Logo Angular - Fabrica din AngularJS

Putem folosi fabrica pentru a crea un serviciu.



transformă dublu în int java

Diferența dintre service și fabrică

  • Un serviciu poate fi definit în felul următor:

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

this.sayHola = function () {



console.log („Bună ziua”)

}

})

Metoda .service () preia numele și funcția care definește serviciul. Îl putem injecta în modul următor:

app.controller („AppController”, funcție (FirstService) {

FirstService.sayHello () // înregistrează „Bună ziua”

})

  • O fabrică, pe de altă parte, poate fi definită în felul următor:

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

întoarcere {

sayHola: function () {

console.log („Bună ziua”)

}

}

})

factory () este, de asemenea, o metodă care ia un nume și o funcție care definește fabrica. Îl putem injecta în același mod ca și injectarea unui serviciu. Diferența majoră între un serviciu și o fabrică este că noi returnează un obiect literal în cazul fabricii (în loc să folosească acest lucru). Motivul este că serviciul este o funcție constructor, în timp ce o fabrică nu este.

tablou amestecând două surse de date
  • Pentru o mai bună înțelegere, să aruncăm o privire la funcția din fabrică ():

function factory (nume, factFn, aplicare) {

furnizor de returnare (nume, {

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

})

}

În codul dat mai sus, ia numele și funcția de fabrică trecută. Returnează un furnizor cu același nume, împreună cu un$ getmetoda (care este funcția din fabrică). Acest lucru se datorează motivului pentru care ori de câte ori injectorului i se cere o anumită dependență, injectorul solicită furnizorului o instanță a acelui serviciu apelând la$ get ()metodă.

  • La injectarea FirstService, funcțiile din fabrică se numesc:

FirstServiceProvider. $ Get () // returnează instanța serviciului

  • Pentru codul serviciului:

serviciu de funcții (nume, constructor) {

returnează fabrica (nume, ['$ injector', funcție ($ injector) {

returnează $ injector.instantiate (constructor)

}])

}

Când sunămservice (), fabrică ()este cel care se numește de fapt. Acest lucru se face prin trecerea unei funcții care cere injectorului să instanțieze un obiect de către constructor. În termeni mai simpli, serviciul apelează o fabrică predefinită.

$ injector.instantiate ()apeleazăObject.create ()cu funcția constructor. Acesta este motivul pentru care acest este utilizat în servicii.

Exemplu de fabrică în JavaScript

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

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

returnează „o valoare”

})

firstModule.controller („FirstController”, funcție ($ scope, firstFactory) {

așteptați și anunțați în java

console.log (firstFactory)

})

Injectarea valorilor în fabrică

O valoare poate fi injectată în fabrică prin următoarea metodă:

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

firstModule.value ('numberValue', 29)

firstModule.controller („FirstController”, funcție ($ scope, numberValue) {

console.log (numberValue)

})

NOTĂ: Trebuie remarcat faptul că valoarea produsă de funcția din fabrică este injectată, nu funcția din fabrică în sine.

Cu aceasta, ajungem la sfârșitul acestei fabrici în articolul AngularJS. Sper că ați înțeles ce anume este o fabrică și cum diferă de un serviciu.

Cuită-te la de Edureka, o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul. Angular este un cadru JavaScript care este utilizat pentru a crea aplicații web scalabile, de întreprindere și de performanță din partea clientului. Adoptarea cadrului angular fiind ridicată, managementul performanței aplicației este condus indirect de comunitate, oferind oportunități de muncă mai bune. Instruirea privind certificarea angulară urmărește să acopere toate aceste noi concepte în jurul dezvoltării aplicațiilor pentru întreprinderi.