AngularJS의 공장에 대해 알아야 할 모든 것



이 기사는 AngularJS의 Factory에 대한 상세하고 포괄적 인 지식과 서비스와의 차이점을 제공합니다.

재사용 가능한 싱글 톤 객체 인 서비스를 제공합니다. 사용자 AngularJS 애플리케이션간에 코드를 공유하는 데 사용할 수 있습니다. 또한 지시문, 필터 및 . 이 기사에서는 AngularJS의 공장을 이해합니다.

AngularJS의 Factory는 무엇입니까?

Factory는 값을 반환하는 데 사용되는 각도 함수입니다. 주문형 가치는 서비스 또는 컨트롤러가 필요할 때마다 공장에서 생성됩니다. 값이 생성되면 모든 서비스 및 컨트롤러에 재사용됩니다.





Angular 로고-AngularJS의 공장

공장을 사용하여 서비스를 만들 수 있습니다.



서비스와 공장의 차이점

  • 서비스는 다음과 같은 방법으로 정의 할 수 있습니다.

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

this.sayHola = function () {



console.log ( 'Hello')

}

})

.service () 메서드는 서비스를 정의하는 이름과 함수를받습니다. 다음과 같은 방법으로 주입 할 수 있습니다.

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

FirstService.sayHello () // 'Hello'기록

})

  • 반면에 공장은 다음과 같은 방식으로 정의 할 수 있습니다.

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

return {

sayHola : function () {

console.log ( 'Hello')

}

}

})

factory ()는 또한 팩토리를 정의하는 이름과 함수를 취하는 메소드입니다. 서비스를 주입하는 것과 같은 방식으로 주입 할 수 있습니다. 서비스와 공장의 주요 차이점은 객체 리터럴 반환 공장의 경우 (이것을 사용하는 대신). 그 이유는 서비스는 생성자 함수이지만 팩토리는 그렇지 않기 때문입니다.

  • 더 나은 이해를 위해 팩토리 function ()을 살펴 보겠습니다.

에프unction factory (이름, factFn, 시행) {

PL SQL을 배우는 방법

반환 공급자 (이름, {

$ get : 강제! == false? forceReturnValue (name, factFn) : factFn

})

}

위에 주어진 코드에서 이름과 전달 된 팩토리 함수를 사용합니다. 동일한 이름을 가진 공급자와 함께$ getmethod (공장 기능). 이는 인젝터가 특정 종속성을 요청할 때마다 인젝터가 해당 서비스의 인스턴스를$ get ()방법.

  • FirstService를 삽입하면 팩토리 함수가 호출됩니다.

FirstServiceProvider. $ get () // 서비스의 인스턴스를 반환합니다.

  • 서비스 코드 :

function service (name, constructor) {

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

return $ injector.instantiate (생성자)

}])

}

우리가 전화 할 때서비스 (), 공장 ()실제로 호출되는 것입니다. 이는 생성자에 의해 객체를 인스턴스화하도록 인젝터에 요청하는 함수를 전달하여 수행됩니다. 간단히 말해서 서비스는 사전 정의 된 공장을 호출합니다.

$ injector.instantiate ()호출Object.create ()생성자 함수로. 그래서 서비스에 사용됩니다.

JavaScript의 Factory 예제

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

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

'값'반환

})

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

console.log (firstFactory)

})

공장에 가치 주입

다음 방법으로 값을 공장에 주입 할 수 있습니다.

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

firstModule.value ( 'numberValue', 29)

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

console.log (numberValue)

})

노트: 공장 기능 자체가 아니라 공장 기능에 의해 생성 된 값이 주입된다는 점에 유의해야합니다.

이것으로 우리는 AngularJS 기사에서이 팩토리를 끝맺습니다. 공장이란 정확히 무엇이고 서비스와 어떻게 다른지 이해 하셨기를 바랍니다.

도대체 전 세계에 걸쳐 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 작성했습니다. Angular는 확장 가능한 엔터프라이즈 및 성능 클라이언트 측 웹 애플리케이션을 만드는 데 사용되는 JavaScript 프레임 워크입니다. Angular 프레임 워크 채택률이 높기 때문에 애플리케이션의 성능 관리는 커뮤니티 주도로 간접적으로 더 나은 취업 기회를 유도합니다. Angular 인증 교육은 엔터프라이즈 애플리케이션 개발과 관련된 이러한 모든 새로운 개념을 다루는 것을 목표로합니다.