angularjs 에서 Factory, Service, Provider 간 의 차이
3115 단어 AngularJS
1. Factory
factory('dataService',function(){
return {
golbal_sitename:"this is the shared value",
sayHello:function(msg){
alert(msg);
}
}
})
위의 코드 를 주의 깊 게 보 세 요. 저 희 는 dataService 안 을 정의 합 니 다. 뒤의 funciton 은 대상 으로 직접 돌아 갑 니 다.리 턴 대상 에서 속성 과 방법 을 정의 할 수 있 습 니 다. 위 에 golbal 을 되 돌려 주 었 습 니 다.sitename 속성 과 sayHello 방법.
쉽게 말 하면 factory 가 정의 한 function 이 돌아 오 는 대상 에 속성 과 방법 을 정의 하고 contrller 에 주입 하면 contrller 에서 이러한 속성 과 방법 을 호출 할 수 있 습 니 다.
2. 우 리 는 service 로 위의 코드 를 고 쳐 씁 니 다.
service('dataService',function(){
this.golbal_sitename = "this is the shared value";
this.sayHello = function(msg){
alert(msg);
};
});
위의 코드 와 factory 정의 의 차 이 를 주의 하 십시오. 여기 서 return 을 제거 하고 this 키 워드 를 추 가 했 습 니 다.다시 말 하면 factory 정의 에 있 는 function 은 대상 을 되 돌려 주 는 것 이 고 service 정의 에 있 는 funciton 은 클래스 정 의 를 되 돌려 줍 니 다.
즉, service 에서 정 의 된 dataService 는 마지막 으로 new 뒤에 정 의 된 function 을 통 해 예화 되 었 다.
http://jsfiddle.net/kn46u0uj/1/
3. Provider 를 사용 하여 코드 를 다시 고치 기
Provider 가 정의 하 는 서 비 스 는. config () 함수 에 들 어 갈 수 있 습 니 다.service 를 사용 하기 전에 모듈 인 자 를 설정 해 야 할 때 Provider 를 사용 하여 service 를 정의 해 야 합 니 다.
코드 는 다음 과 같 습 니 다:
provider('dataService',function(){
this.$get = function(){
return {
golbal_sitename:"this is the shared value",
sayHello:function(msg){
alert(msg);
}
}
};
})
http://jsfiddle.net/kn46u0uj/3/
위 에서 세 가지 방식 으로 정 의 된 서 비 스 는 모두 정상적으로 작 동 할 수 있 습 니 다. 유일 하 게 주의해 야 할 것 은 service 가 config 에 들 어가 설정 해 야 할 때 provider 를 사용 하여 정 의 를 내 려 야 한 다 는 것 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
AngularJS의 ng-options best practise쓸데없는 말은 하지 말고 바로 코드를 찍어라. 리소스를api에 직접 전달하지 말고 문자열이나 정형(예를 들어 귀속된ng-model="selected")을 권장합니다 angular에서 생성된 의value가 무엇인지, ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.