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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
 
<script src="./lib/jquery/1.9.1/jquery.min.js"></script>
<script src="./lib/handlebars/4.0.10/handlebars.js"></script>
</head>
<body>
 
    <ul id="testData">
    </ul>
 
    <script id="template" type="text/x-handlebars-template">
        {{#each members}}  
            {{#fn_ifTest age}}
                 <li>
                    {{@index}} :
                    {{name}}
                    {{age}}
                </li>
            {{/fn_ifTest}}
        {{/each}}
    </script>
 
    <script type="text/javascript">
        
        Handlebars.registerHelper("fn_ifTest", function(age, option) {
 
            console.log(this);
            console.log(age);
            console.log(this.age);
            console.log(option);
            console.log(option.fn());      
            console.log(option.fn(this));  // this 인자의 차이는 출력값 포함, 미포함 
 
            var result "";
 
            if(age == 20) { // age가인 맴버만 출력
                result += option.fn(this);
            }
            return result;
        });
 
        var testData = {
            members : [ 
                { name : '이소룡', regdate: 1496893345000, age:50}, 
                { name : '김양용', regdate: 1496893341000, age:20}, 
                { name : '조미미', regdate: 1496893330000, age:30}, 
                { name : '김조조', regdate: 1496893310000, age:20}, 
                { name : '김나라', regdate: 1496893380000, age:60} 
            ]
        }
 
        var template = Handlebars.compile($('#template').html());
        var html = template(testData);
        $("#testData").append(html);
 
    </script>
</body>
</html>


반응형

'Handlebars' 카테고리의 다른 글

[Handlebars] 헬퍼함수 조건문 else 분기  (0) 2017.06.08
[Handlebars] 헬퍼함수 사용  (1) 2017.06.08
[Handlebars] each 반복문 출력  (0) 2017.06.08
Posted by 힘없는염소