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

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>