Wszystko, co musisz wiedzieć o fabryce w AngularJS



W tym artykule znajdziesz szczegółową i wszechstronną wiedzę o fabryce w AngularJS i o tym, czym różni się ona od usługi.

świadczy usługi, które są pojedynczymi obiektami wielokrotnego użytku. Mogą być używane do udostępniania kodu w aplikacjach AngularJS użytkowników. Można je również wstrzykiwać do dyrektyw, filtrów i . W tym artykule zrozumiemy fabrykę w AngularJS.

Co to jest Factory w AngularJS?

Fabryka to funkcja kątowa, która służy do zwracania wartości. Wartość na żądanie jest tworzona przez fabrykę zawsze, gdy potrzebuje tego serwis lub kontroler. Utworzona wartość jest ponownie używana dla wszystkich usług i kontrolerów.





Logo Angular - Fabryka w AngularJS

Możemy wykorzystać fabrykę do stworzenia usługi.



Różnica między serwisem a fabryką

  • Usługę można zdefiniować w następujący sposób:

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

this.sayHola = function () {



console.log („Witaj”)

}

})

Metoda .service () przyjmuje nazwę i funkcję, która definiuje usługę. Możemy to wstrzyknąć w następujący sposób:

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

FirstService.sayHello () // rejestruje „Hello”

})

  • Z drugiej strony fabrykę można zdefiniować w następujący sposób:

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

powrót {

sayHola: function () {

console.log („Witaj”)

}

}

różnice między hashmap i hashtable

})

factory () jest również metodą, która przyjmuje nazwę i funkcję definiującą fabrykę. Możemy wstrzyknąć to w taki sam sposób, jak wstrzyknąć usługę. Główna różnica między usługą a fabryką polega na tym, że my zwraca literał obiektu w przypadku fabryki (zamiast tego używać). Powodem jest to, że usługa jest funkcją konstruktora, podczas gdy fabryka nie.

  • Aby lepiej zrozumieć, przyjrzyjmy się funkcji fabryki ():

faunction factory (name, factFn, egzekwować) {

dostawca zwrotu (nazwa, {

$ get: wymuszaj! == false? egzekwowanieReturnValue (nazwa, faktFn): faktFn

})

}

W podanym powyżej kodzie przyjmuje nazwę i przekazaną funkcję fabryczną. Zwraca dostawcę o tej samej nazwie wraz z rozszerzeniem$ getmetoda (która jest funkcją fabryczną). Wynika to z tego, że za każdym razem, gdy wtryskiwacz jest proszony o określoną zależność, wtryskiwacz prosi dostawcę o wystąpienie tej usługi, wywołując$ get ()metoda.

  • Po wstrzyknięciu FirstService funkcje fabryczne są wywoływane:

FirstServiceProvider. $ Get () // zwraca wystąpienie usługi

  • Kod serwisowy:

function service (name, constructor) {

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

return $ injector.instantiate (konstruktor)

}])

}

Kiedy dzwonimyservice (), factory ()jest tym, który jest faktycznie nazywany. Odbywa się to poprzez przekazanie funkcji, która prosi wtryskiwacz o utworzenie instancji obiektu przez konstruktora. Mówiąc prościej, serwis dzwoni do wstępnie zdefiniowanej fabryki.

$ injector.instantiate ()wywołujeObject.create ()z funkcją konstruktora. Dlatego to jest używany w usługach.

Przykład Factory w JavaScript

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

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

zwróć „wartość”

})

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

console.log (firstFactory)

})

Wstrzykiwanie wartości do fabryki

Wartość można wprowadzić do fabryki w następujący sposób:

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

firstModule.value ('numberValue', 29)

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

console.log (numberValue)

})

na koniec i sfinalizuj w java

UWAGA: Należy zauważyć, że wstrzykiwana jest wartość wytwarzana przez funkcję fabryczną, a nie przez samą funkcję fabryczną.

W ten sposób dochodzimy do końca artykułu Factory w AngularJS. Mam nadzieję, że rozumiesz, czym dokładnie jest fabryka i czym różni się od usługi.

doheck out the autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Angular to framework JavaScript, który służy do tworzenia skalowalnych, korporacyjnych i wydajnych aplikacji internetowych po stronie klienta. Przy wysokim stopniu wykorzystania frameworka Angular zarządzanie wydajnością aplikacji jest sterowane przez społeczność, pośrednio zapewniając lepsze możliwości zatrudnienia. Angular Certification Training ma na celu objęcie wszystkich tych nowych koncepcji dotyczących tworzenia aplikacji korporacyjnych.