본문 바로가기
카테고리 없음

AngularJS 서비스의 이해

by ByteBridge 2016. 2. 23.
반응형
controller 는 한가지 뷰에만 집중해야 한다.
애플리케이션 전체에서 공유해야 할 기능이 필요할때 서비스를 사용한다.
     컨트롤러와 컨트롤러는 직접 커뮤니케이션 해서는 안된다.
따라서 컨트롤러들이 정보를 공유하게 하려면 서비스 를 사용 해야한다.


서비스는 $provide 의 내장 서비스에 의해 애플리케이션에 등록함.
대부분의 경우 angular.module 객체를 이용하는 방법이 수월하다.

$provide 객체:
     module.value
     module.service
     module.factory
     module.provider
와  같은 메서드를 제공한다.

example:
서비스로 사용할 객체를 선언한다.

myModule.value 메서드를 통해 애플리케이션이 서비스로서 활용할 수있는 값을 등록한다.
STORY_TYPES 라는 값으로 객체의 배열을 전달 하도록 한다.

myModule.value(‘STORY_TYPES’,[
     {name: ‘기능’},
     {name: ‘개선'},
     {name: ‘버그’},
     ]);

사용 예제:
 
angular.module(‘gavin.storyboard’)
     .controller(‘StoryboardCtrl’,
        #STORY_TYPES 서비스를 StoryBoardCtrl 컨트롤러에 주입한다.
          function(STORY_TYPES) {
               var myStory=this;

          #코드를 통해 서비스 객체를 컨트롤러에 등록한다.
          myStory.types=STORY_TYPES;
});

뷰에서 스토리 타입 서비스를 사용 할 수있도록 myStory.types=STORY_TYPES 

스토리 타입을 서비스로 분리 할 경우 한번정의된 서비스는 어떤 것과도 어디서든, 활용이 가능 하다.

서비스는 오직 하나의 인스턴스만 생성된다.
서비스는 필요한 경우에만 로드 된다.

서비스의 종류: 
     value,constant,service,factory,provider

(출처: Angular in Action)





반응형