코딩, 개발에 대한 기록 저장소

AngularJS Service이해하기


## 개념
서비스는 여러 함수적인 기능을 수행하는 컨트롤러와는 다르게 하나의 객체를 리턴하는 형태가 주를 이룬다.

컨트롤러는 $scope 상의 모델을 조작하거나 UI와 밀접하게 여러 기능들을 수행하는 반면 서비스는 자체가 싱글톤이라는 특성을 사용하여 컨트롤러간의 통신을 제어하거나, 리소스 접근 권한을 가진 객체를 리턴하여 컨트롤러에서 필요한 처리하게 된다.

## 예제

Javascript
```
    <script>
        var myApp = angular.module('myApp', []);

        myApp.controller('HelloCtrl', function ($scope, HelloService, HelloFactory){
            $scope.title = 'Hello';

            // service 함수 선언
            $scope.addWorldService = function(){
                $scope.title = HelloService.addWorld($scope.title);  
            };
        });

        myApp.service('HelloService', function(){
            this.addWorld = function(title){
                return title + " world";
            };
        });
    </script>
```

HTML

```
    <body>
        <div ng-app="myApp">
            <div ng-controller="HelloCtrl">
                <h1>{{title}}</h1>
                <br/>
                <button ng-click="addWorldService()">via service</button> 
            </div>
        </div>
    </body>
```