предоставя услуги, които са еднократни обекти за многократна употреба. Те могат да се използват за споделяне на кода между потребителските приложения AngularJS. Те също могат да бъдат инжектирани в директиви, филтри и . В тази статия ще разберем фабриката в AngularJS.
Какво е Factory в AngularJS?
Factory е ъглова функция, която се използва за връщане на стойностите. Стойност при поискване се създава от фабриката, когато услуга или контролер има нужда от нея. След като стойността е създадена, тя се използва повторно за всички услуги и контролери.
Можем да използваме фабриката, за да създадем услуга.
Разлика между обслужването и фабриката
- Услугата може да бъде дефинирана по следния начин:
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 е високо, управлението на изпълнението на приложението се ръководи от общността, индиректно стимулирайки по-добри възможности за работа. Обучението за ъглово сертифициране има за цел да обхване всички тези нови концепции около разработването на корпоративни приложения.