Vše, co potřebujete vědět o továrně v AngularJS

Tento článek vám poskytne podrobné a komplexní znalosti o Factory in AngularJS a o tom, jak se liší od služby.

poskytuje služby, které jsou opakovaně použitelnými jedinými objekty. Lze je použít ke sdílení kódu mezi aplikacemi AngularJS uživatelů. Mohou být také injektovány do směrnic, filtrů a . V tomto článku pochopíme továrnu v AngularJS.

Co je Factory v AngularJS?

Továrna je úhlová funkce, která se používá k vrácení hodnot. Hodnotu na vyžádání vytváří továrna, kdykoli ji služba nebo řídicí jednotka potřebuje. Jakmile je hodnota vytvořena, je znovu použita pro všechny služby a řadiče.





Úhlové logo - továrna v AngularJS

Továrnu můžeme použít k vytvoření služby.



Rozdíl mezi servisem a továrnou

  • Službu lze definovat následujícím způsobem:

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

this.sayHola = funkce () {



console.log ('Hello')

}

})

Metoda .service () přebírá název a funkci, která definuje službu. Můžeme jej aplikovat následujícím způsobem:

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

FirstService.sayHello () // přihlásí 'Hello'

})

  • Továrnu lze na druhou stranu definovat následujícím způsobem:

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

vrátit se {

sayHola: funkce () {

jak převést dvojité na celé číslo v javě

console.log ('Hello')

}

}

})

factory () je také metoda, která přebírá název a funkci, která definuje továrnu. Můžeme jej vložit stejným způsobem jako do služby. Hlavní rozdíl mezi službou a továrnou je v tom, že my vrátit objekt doslovný v případě továrny (místo použití této). Důvodem je, že služba je funkcí konstruktoru, zatímco továrna není.

  • Pro lepší pochopení se podívejme na tovární funkci ():

Function factory (name, factFn, enforce) {

poskytovatel vrácení (jméno, {

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

})

}

V kódu uvedeném výše přebírá název a předanou tovární funkci. Vrátí poskytovatele se stejným názvem spolu s a$ dostatmetoda (což je tovární funkce). To je způsobeno tím, že kdykoli je injektor požádán o konkrétní závislost, injektor požádá poskytovatele o instanci této služby voláním$ get ()metoda.

  • Po vložení FirstService se tovární funkce volají:

FirstServiceProvider. $ Get () // vrátí instanci služby

  • Pro servisní kód:

funkční služba (jméno, konstruktor) {

vrátit továrnu (název, ['$ injector', funkce ($ injector) {

vrátit $ injector.instantiate (konstruktor)

}]))

}

Když zavolámeslužba (), továrna ()je ten, kterému se vlastně říká. To se provádí předáním funkce, která požádá injektor o vytvoření instance objektu konstruktorem. Jednoduše řečeno, služba volá předdefinovanou továrnu.

$ injector.instantiate ()voláObject.create ()s funkcí konstruktoru. To je proč tento se používá ve službách.

Příklad továrny v JavaScriptu

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

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

vrátit 'hodnotu'

})

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

console.log (firstFactory)

})

Vkládání hodnot do továrny

java převést dvojité na int

Hodnotu lze do továrny vložit následující metodou:

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

firstModule.value ('numberValue', 29)

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

console.log (numberValue)

})

POZNÁMKA: Je třeba poznamenat, že je zadána hodnota produkovaná funkcí továrny, nikoli samotná funkce továrny.

S tímto se dostáváme na konec tohoto článku Factory in AngularJS. Doufám, že jste pochopili, co přesně je továrna a jak se liší od služby.

Csakra Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů rozložených po celém světě. Angular je framework jazyka JavaScript, který se používá k vytváření škálovatelných, podnikových a výkonných webových aplikací na straně klienta. Vzhledem k vysokému přijetí úhlového rámce je správa výkonu aplikace řízena komunitou nepřímo a přináší lepší pracovní příležitosti. Cílem školení Angular Certification Training je pokrýt všechny tyto nové koncepty týkající se vývoje podnikových aplikací.