Всичко, което трябва да знаете за фабриката в AngularJS



Тази статия ще ви предостави подробни и изчерпателни познания за Factory in AngularJS и за това как се различава от услугата.

предоставя услуги, които са еднократни обекти за многократна употреба. Те могат да се използват за споделяне на кода между потребителските приложения AngularJS. Те също могат да бъдат инжектирани в директиви, филтри и . В тази статия ще разберем фабриката в AngularJS.

Какво е Factory в AngularJS?

Factory е ъглова функция, която се използва за връщане на стойностите. Стойност при поискване се създава от фабриката, когато услуга или контролер има нужда от нея. След като стойността е създадена, тя се използва повторно за всички услуги и контролери.





Angular Logo - Фабрика в AngularJS

Можем да използваме фабриката, за да създадем услуга.



Разлика между обслужването и фабриката

  • Услугата може да бъде дефинирана по следния начин:

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

this.sayHola = function () {



console.log („Здравейте“)

}

})

Методът .service () взема името и функцията, която дефинира услугата. Можем да го инжектираме по следния начин:

app.controller ('AppController', функция (FirstService) {

FirstService.sayHello () // регистрира „Здравейте“

})

  • Фабриката, от друга страна, може да бъде определена по следния начин:

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

връщане {

sayHola: function () {

console.log („Здравейте“)

}

}

})

factory () също е метод, който взема име и функция, която определя фабриката. Можем да го инжектираме по същия начин, както инжектираме услуга. Основната разлика между услугата и фабриката е, че ние връща обектен литерал в случай на фабрика (вместо да използвате това). Причината е, че услугата е конструктор, докато фабриката не.

  • За по-добро разбиране, нека да разгледаме фабричната функция ():

еunction factory (име, factFn, налагане) {

връщане на доставчик (име, {

как да инициализираме обект в python

$ get: налагане! == false? princeReturnValue (име, factFn): factFn

})

}

В кода, даден по-горе, той взема името и предадената фабрична функция. Той връща доставчик със същото име, заедно с$ вземетеметод (което е фабричната функция). Това се дължи на причината, поради която всеки път, когато инжекторът бъде поискан за специфична зависимост, инжекторът пита доставчика за екземпляр на тази услуга, като извиква$ get ()метод.

  • При инжектиране на FirstService фабричните функции се извикват:

FirstServiceProvider. $ Get () // връща екземпляра на услугата

  • За кода на услугата:

услуга на функция (име, конструктор) {

върнете фабриката (име, ['$ инжектор', функция ($ инжектор) {

върнете $ injector.instantiate (конструктор)

кръстосано тестване на браузър в селен webdriver

}]))

}

Когато се обадимуслуга (), фабрика ()е тази, която всъщност се нарича. Това се прави чрез предаване на функция, която иска от инжектора да създаде екземпляр на обект от конструктора. По-просто казано, услугата извиква предварително дефинирана фабрика.

$ injector.instantiate ()призоваваObject.create ()с функцията конструктор. Защото това се използва в услугите.

Пример за фабрика в JavaScript

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

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

връща 'стойност'

})

firstModule.controller ('FirstController', функция ($ scope, firstFactory) {

console.log (firstFactory)

})

Инжектиране на стойности във фабрика

Стойност може да се инжектира фабрично по следния метод:

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

firstModule.value ('numberValue', 29)

firstModule.controller ('FirstController', функция ($ scope, numberValue) {

console.log (numberValue)

})

ЗАБЕЛЕЖКА: Трябва да се отбележи, че стойността, произведена от фабричната функция, се инжектира, а не самата фабрична функция.

С това стигнахме до края на тази фабрика в статията на AngularJS. Надявам се, че сте разбрали какво точно представлява фабриката и по какво се различава от услугата.

° Спо дяволите от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят. Angular е JavaScript рамка, която се използва за създаване на мащабируеми, корпоративни и ефективни уеб приложения от страна на клиента. Тъй като приемането на Angular framework е високо, управлението на изпълнението на приложението се ръководи от общността, индиректно стимулирайки по-добри възможности за работа. Обучението за ъглово сертифициране има за цел да обхване всички тези нови концепции около разработването на корпоративни приложения.