이 글은 주로 angularjs의 여러 서비스에 대한 자세한 분석을 다루고 있습니다. Anglejs 서비스의 사용법과 차이점에 대한 소개도 있습니다. 이제 이 글을 함께 살펴보겠습니다.
잘 계층화된 In Angular 애플리케이션의 경우 컨트롤러 계층은 매우 얇아야 합니다. 즉, 애플리케이션의 대부분의 비즈니스 로직과 영구 데이터는 서비스에 배치되어야 합니다.
이러한 이유로 AngularJS의 여러 공급자 간의 차이점을 이해하는 것이 필요합니다.
Provider에서 만든 새로운 서비스를 주입에 사용할 수 있습니다. 포함:
provider
factory
app.provider('myProvider', function(){ var a = ''; var func = function(){}; })
app.config 함수에서 a를 수정합니다. 이는 간단한 팩토리가 있을 때 공급자를 사용하는 이유이기도 합니다.
app.config(function(myProviderProvider){ myProvider.a = 'hello world'; })
두 번째 부분의 변수와 함수는 $get() 함수에 의해 반환되며 공급자를 전달하는 모든 컨트롤러에서 액세스할 수 있습니다.
app.provider('myProvider', function(){ this.$get = function(){ return { foo: function(){}, a: a } } })
factory
app.factory('myFactory', function(){ var fac = {}; fac.a = 'hello world'; fac.foo = function(){}; return fac; })
factory의 두 번째 매개변수는 $get in Provider에 해당하는 함수 구현임을 알 수 있습니다.
service
app.service('myService', function(){ var a = ''; this.setA = function(){}; this.getA = function(){}; this.foo = function(){}; })
myService에 삽입된 컨트롤러는 myService에 바인딩된 setA(), getA() 및 foo() 메서드에 액세스할 수 있습니다.
constant
app.constant('APP_KEY', 'a1s2d3f4')
value
app.value('version', '1.0')
value는 일반적으로 애플리케이션의 초기 값을 설정하는 데 사용됩니다. (자세한 내용을 알고 싶으면 PHP 중국어 웹사이트
AngularJS Development Manual다음은 데코레이터를 사용하여 값을 장식하는 밤나무입니다.
app.value('version', '1.0'); app.decorator('version', function ($delegate) { return $delegate + '.1'; })
기존 myService 서비스를 이용하고 싶은데, 원하는 인사말 기능이 부족하다면. 서비스가 수정될 수 있나요? 대답은 '아니오'입니다! 그러나 장식할 수 있습니다.
app.decorator('myService', function($delegate){ $delegate.greet = function(){ return "Hello, I am a new function of 'myService'"; } })
$delegate는 실제 서비스 인스턴스를 나타냅니다.
서비스를 장식하는 기능은 매우 실용적입니다. 특히 타사 서비스를 사용하려는 경우에는 코드를 프로젝트에 복사할 필요가 없고 약간만 수정하면 됩니다.
공장 대신 공급자를 사용해야 하는 경우는 언제인가요?
AngularJS 애플리케이션을 실행하는 과정에 대한 간략한 소개는 구성 단계와 실행 단계의 두 단계로 나누어집니다. 구성 단계에서는 공급자가 설정됩니다. 이는 지시문, 컨트롤러, 필터 및 기타 사항이 설정되는 단계이기도 합니다. 실행 단계에서 AngularJS는 DOM을 컴파일하고 애플리케이션을 시작합니다.
이 기사는 여기에서 끝납니다. (자세한 내용을 보려면 PHP 중국어 웹사이트
AngularJS 사용자 설명서열로 이동하여 궁금한 사항을 알아보세요.) 아래에 메시지를 남겨주세요.
위 내용은 Anglejs에는 몇 개의 서비스가 있나요? Anglejs의 서비스에 대한 자세한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!