Все, что вам нужно знать о Factory в AngularJS



Эта статья предоставит вам подробные и всесторонние знания о Factory в AngularJS и о том, чем она отличается от службы.

предоставляет услуги, которые являются одноэлементными объектами многократного использования. Их можно использовать для совместного использования кода в приложениях AngularJS пользователей. Их также можно вводить в директивы, фильтры и . В этой статье мы разберемся с фабрикой в ​​AngularJS.

Что такое Factory в AngularJS?

Factory - это угловая функция, которая используется для возврата значений. Значение по запросу создается фабрикой, когда это необходимо службе или контроллеру. Как только значение создано, оно повторно используется для всех служб и контроллеров.





Логотип Angular - Фабрика в AngularJS

Мы можем использовать фабрику для создания сервиса.



Разница между сервисом и заводом

  • Услугу можно определить следующим образом:

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

this.sayHola = function () {



console.log ('Привет')

}

})

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

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

FirstService.sayHello () // регистрирует 'Hello'

})

  • С другой стороны, фабрику можно определить следующим образом:

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

вернуть {

sayHola: function () {

console.log ('Привет')

}

}

})

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

  • Для лучшего понимания давайте взглянем на фабричную функцию ():

жфабрика unction (name, factFn, enforce) {

поставщик возврата (имя, {

$ get: enforce! == false? enforceReturnValue (имя, factFn): factFn

})

}

В приведенном выше коде он принимает имя и переданную фабричную функцию. Он возвращает поставщика с тем же именем вместе с$ получитьметод (который является заводской функцией). Это связано с тем, что всякий раз, когда инжектор запрашивает конкретную зависимость, инжектор запрашивает у поставщика экземпляр этой службы, вызывая$ получить ()метод.

  • При внедрении FirstService вызываются фабричные функции:

FirstServiceProvider. $ Get () // вернуть экземпляр службы

  • Для кода услуги:

функция service (имя, конструктор) {

return factory (имя, ['$ injector', function ($ injector) {

return $ injector.instantiate (конструктор)

}])

}

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

$ injector.instantiate ()называетObject.create ()с функцией конструктора. Поэтому этот используется в сервисах.

Пример фабрики на JavaScript

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

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

вернуть 'значение'

})

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

console.log (firstFactory)

})

Внедрение ценностей в фабрику

Значение может быть введено в factory следующим способом:

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

firstModule.value ('numberValue', 29)

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

console.log (numberValue)

})

НОТА: Следует отметить, что вводится значение, созданное фабричной функцией, а не сама фабричная функция.

жизненный цикл активности Android

На этом мы подошли к концу этой статьи о Factory in AngularJS. Надеюсь, вы поняли, что такое фабрика и чем она отличается от сервиса.

Cчерт возьми от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Angular - это платформа JavaScript, которая используется для создания масштабируемых, корпоративных и высокопроизводительных клиентских веб-приложений. Благодаря широкому распространению фреймворка Angular управление производительностью приложения осуществляется сообществом, что косвенно способствует улучшению возможностей трудоустройства. Тренинг по сертификации Angular направлен на охват всех этих новых концепций разработки корпоративных приложений.