AngularJS oferă servicii care sunt obiecte singleton 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 controlori. În acest articol, vom înțelege fabrica în AngularJS.
- Ce este fabrica în AngularJS?
- Diferența dintre serviciu și fabrică
- Exemplu de fabrică în JavaScript
Ce este fabrica în AngularJS?
Factory este o funcție angulară care este utilizată pentru a returna valorile. O valoare la cerere este creată de către fabrică, ori de câte ori un serviciu sau un controler are nevoie de ea. Odată ce valoarea este creată, aceasta este reutilizată pentru toate serviciile și controlorii.
Potem folosi fabrica pentru a crea un serviciu.
Diferența dintre serviciu și fabrică
- Un serviciu poate fi definit în felul următor:
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'
});
- O fabrică, pe de altă parte, poate fi definită în felul următor:
app.factory('FirstService', function () {
return {
sayHola: function () {
console.log('Hola');
}
}
});
factory() este, de asemenea, o metodă care primește un nume și o funcție care definește fabrica. O putem injecta în același mod ca și în cazul injectării unui serviciu. Diferența majoră dintre un serviciu și o fabrică este că în cazul fabricii returnăm un obiect literal (în loc să folosim this). Motivul este că serviciul este o funcție de constructor, în timp ce o fabrică nu este.
- Pentru o mai bună înțelegere, să aruncăm o privire la funcția factory():
function factory(name, factFn, enforce) {
return provider(name, {
$get: enforce !== false ? enforceReturnValue(name, factFn) : factFn
});
}
În codul dat mai sus, acesta primește numele și funcția factory transmisă. Acesta returnează un furnizor cu același nume, împreună cu o metodă $get
(care este funcția de fabrică) . Acest lucru se datorează faptului că ori de câte ori injectorului i se cere o anumită dependență, injectorul cere furnizorului o instanță a acelui serviciu prin apelarea metodei $get()
.
- La injectarea FirstService, funcțiile factory sunt apelate:
FirstServiceProvider.$get(); // return the instance of the service
- Pentru codul serviciului:
function service(name, constructor) {
return factory(name, );
}
Când apelăm service(), factory()
este cea care este efectiv apelată. Acest lucru se face prin trecerea unei funcții care cere injectorului să instanțieze un obiect prin constructor. În termeni mai simpli, serviciul apelează o fabrică predefinită.
$injector.instantiate()
apelează Object.create()
cu funcția de constructor. Acesta este motivul pentru care se utilizează în servicii.
Exemplu de fabrică în JavaScript
var firstModule = angular.module("firstModule", );
firstModule.factory("firstFactory", function() {
return "a value";
});
firstModule.controller("FirstController", function($scope, firstFactory) {
});
firstModule.controller("FirstController", function($scope, firstFactory) {
.
console.log(firstFactory);
});
Injectarea de valori î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", function($scope, numberValue) {
console.log(numberValue);
});
NOTA: Trebuie remarcat faptul că valoarea produsă de funcția factory este injectată, nu funcția factory în sine.
Cu aceasta, ajungem la finalul acestui articol Factory în AngularJS. Sper că ați înțeles ce este mai exact o fabrică și cum diferă de un serviciu.
Verificați trainingul Angular de către Edureka, o companie de învățare online de încredere cu o rețea de peste 250.000 de cursanți mulțumiți răspândiți în întreaga lume. Angular este un cadru JavaScript care este utilizat pentru a crea aplicații web scalabile, de întreprindere și de performanță pe partea clientului. Având în vedere că adopția cadrului Angular este ridicată, managementul performanței aplicației este condus de comunitate, conducând indirect la oportunități mai bune de angajare. Formarea de certificare Angular își propune să acopere toate aceste noi concepte în jurul dezvoltării de aplicații pentru întreprinderi.
.