2016년 1월 15일 금요일

[AngularJS] Service



1
2
3
function ShoppingController($scope, Items){
    $scope.items = Items.query();
}
cs
Items 객체는 어디서 가져올까?

  • Items 객체는 서비스로 정의해야한다.
  • 서비스는 애플리케이션 기능을 보조하는데 필요한 싱글턴 인스턴스 객체다
  • AngularJS는 location, route, http 등 다양한 서비스가 있다.
  • 서비스는 어느 컨트롤러든 서로 공유할 수 있다.
  • 내장 서비스와 충돌을 막기위해, 앞에 $는 붙이지 않는다.


범용 서비스를 작성할 수 있는 함수는 아래와 같이 3가지다.

  • provider(이름, 객체 or 생성자)
  • factory(이름, $읽기함수())
  • service(이름, 생성자)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
    <html >
        <head>
            
            <meta charset="utf8">
            <title>angularjs test</title>
            <style type='text/css' rel='stylesheet'>
                .selected{
                    background-color: lightgreen;
                }
            </style>
        </head>
        <body ng-app='fruitApp'>            
            <div ng-controller='nameController'>
                <p>variable : {{variable}}</p>
                <p>Title : {{title}}</p>
                <p>Items.variable : {{Items.variable}}</p>
            </div>
            <script src='http://ajax.googleapis.com/ajax/libs/angularjs/1.4.2/angular.min.js'></script>
            <script type='text/javascript'>
                var app = angular.module('fruitApp',[]);                
            
                app.factory('Items',function(){
                    var title='Hello, ';
                    function getTitle(name){
                        return title+name;
                    }
                    return {
                        variable : "this is public",
                        getTitle : getTitle
                    }
                });
                function __nameController($scope,Items){
                    //service 객체를 바로 사용해도 되고,
                    $scope.title = Items.getTitle('Jteve');
                    $scope.variable = Items.variable;
                    //service 객체를 모델에 연결하고, VIEW에서 호출해도 된다.
                    $scope.Items = Items;
                }
                app.controller('nameController',__nameController);    
            </script>
        </body>
    </html>
cs




댓글 없음:

댓글 쓰기