Minden, amit a Factory-ről tudni kell az AngularJS-ben

AngularJS olyan szolgáltatásokat biztosít, amelyek újrafelhasználható singleton objektumok. Ezek segítségével megosztható a kód a felhasználók AngularJS alkalmazásai között. Injektálhatók direktívákba, szűrőkbe és vezérlőkbe is. Ebben a cikkben megértjük a gyárat az AngularJS-ben.

  • Mi a gyár az AngularJS-ben?
  • Különbség a szolgáltatás és a gyár között
  • Példa a gyárra JavaScriptben

Mi a gyár az AngularJS-ben?

A gyár egy angular függvény, amely az értékek visszaadására szolgál. Az igény szerinti értéket a factory hozza létre, amikor egy szolgáltatásnak vagy vezérlőnek szüksége van rá. Miután az értéket létrehoztuk, az összes szolgáltatás és vezérlő számára újra felhasználható.

Angular Logo - Factory az AngularJS-ben

A factory segítségével létrehozhatunk egy szolgáltatást.

Különbség a szolgáltatás és a gyár között

  • A szolgáltatás a következő módon definiálható:

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'

});

  • A gyár, másrészt a következőképpen definiálható:

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

return {

sayHola: function () {

console.log('Hola');

}

}

});

factory() szintén egy metódus, amely elfogad egy nevet és a gyárat definiáló függvényt. Ugyanúgy tudjuk injektálni, mint egy szolgáltatás injektálását. A legfőbb különbség a szolgáltatás és a factory között az, hogy a factory esetében egy objektum literált adunk vissza (ahelyett, hogy ezt használnánk). Ennek oka, hogy a service egy konstruktorfüggvény, míg a factory nem az.

  • A jobb megértés érdekében nézzük meg a factory függvényt():

function factory(name, factFn, enforce) {

return provider(name, {

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

});

}

A fenti kódban a nevet és az átadott factory függvényt veszi. Visszaad egy azonos nevű szolgáltatót, egy $get metódussal együtt (ami a gyári függvény) . Ennek az az oka, hogy amikor az injektortól egy adott függőséget kérnek, az injektor a $get() metódus meghívásával kéri a szolgáltatótól az adott szolgáltatás egy példányát.

  • A FirstService injektálásakor a gyári függvények meghívásra kerülnek:

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

  • A szolgáltatás kódjához:

function service(name, constructor) {

return factory(name, );

}

Híváskor a service(), factory() az, amelyet ténylegesen meghívunk. Ez úgy történik, hogy átadunk egy függvényt, amely megkéri az injektort, hogy a konstruktorral instanciáljon egy objektumot. Egyszerűbben fogalmazva, a szolgáltatás egy előre definiált gyárat hív meg.

$injector.instantiate() a Object.create() a konstruktorfüggvénnyel hívja meg a Object.create(). Ezért használják ezt a szolgáltatásokban.

Példa a gyárra JavaScriptben

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

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

return "a value";

});

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

.

console.log(firstFactory);

});

Értékek injektálása a gyárba

Egy értéket a következő módszerrel lehet a gyárba injektálni:

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

firstModule.value("numberValue", 29);

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

console.log(numberValue);

});

MEGJEGYZÉS: Meg kell jegyezni, hogy a factory függvény által előállított értéket injektáljuk, nem magát a factory függvényt.

Ezzel a Factory in AngularJS cikkünk végére értünk. Remélem, megértetted, hogy pontosan mi is az a factory, és miben különbözik a szolgáltatástól.

Nézd meg az Edureka Angular képzését, amely egy megbízható online tanulási vállalat, amelynek hálózata több mint 250 000 elégedett tanulót számlál szerte a világon. Az Angular egy JavaScript keretrendszer, amelyet skálázható, nagyvállalati és teljesítményű kliensoldali webes alkalmazások létrehozására használnak. Mivel az Angular keretrendszer elterjedtsége magas, az alkalmazás teljesítménymenedzsmentje közösségvezérelt, ami közvetve jobb munkalehetőségeket eredményez. Az Angular tanúsító képzés célja, hogy lefedje ezeket az új fogalmakat a vállalati alkalmazásfejlesztés körül.

Szólj hozzá!