1. HISTORY
1.1. 설계 철학
저는 HTML 영역에 계산, 반복, 변환 등의 로직 노출을 최소화하자는 코드분리 철학을 가지고 있습니다. (관련 논문 참고)
1.2. 초기 버전 (hidongh.tistory.com/4)
웹페이지의 코드 가독성과 개발 생산성 향상을 설계 목표로 JSTL의 forEach 사용을 대체하는
jquery.forEach plugin을 2015년에 공개하였습니다.
1.3. jquery.tmplEach v1.0 (hidongh.tistory.com/5)
이 후 javascript 템플릿 엔진의 개념이 이미 존재함을 알게 되었고 인지도가 있는 jquery.tmpl plugin을 참고하되, 코드분리 철학은 유지하는 방향으로 jquery.tmplEach plugin을 2016년에 공개하였습니다.
1.4. jquery.tmplEach v1.1 (hidongh.tistory.com/6)
논문에서 HTML 주석처리로 소개한 개념을 템플릿 엔진의 기능으로 다시 복원.
1.5. jquery.eachTmpl v1.2 (hidongh.tistory.com/7)
필터링 함수 문법을 jquery each문과 유사하게 재정의하면서 명칭 수정. options 파라미터 추가.
1.6. jquery.hTmpl v1.3 (hidongh.tistory.com/8)
코드분리 철학에 집중하는 간결한 버전으로 새롭게 정의하면서 명칭 수정. 반복, 필터링 기능 제거.
(주 기능에 속하지 않는 부가 기능은 사용자 정의 로직에서 다루는 것이 적합하다는 판단입니다)
※ hTmlp 함수에는 반복, 필터링 기능이 없으므로 $.each() 함수와 함께 사용할 것을 권장합니다.
1.7. jquery.hTmpl v1.4 (hidongh.tistory.com/9)
html escape 처리후 치환용 식별자 추가 정의. {{=key}}
2. 사용 예제
2.1. 작성 예시
<select id="select_render">
<option>기준월을 선택하세요.</option>
</select>
<script id="select_tmpl" type="text/tmpl">
<option value="{{key_month}}">{{=disp_month}}</option>
</script>
<script type="text/javascript">
var data = [ {"key_month":"11"}, {"key_month":"12"} ];
$.each(data, function(i, obj) {
// data가 다건이 아니면 [data]로 배열화 시킬 수 있음(단건 data도 each 함수에서 필터링 처리할 경우)
obj.disp_month = obj.key_month + " <월>";
$("#select_render").append( $("#select_tmpl").hTmpl(obj) );
});
</script>
2.2. 실행 결과
<!-- 실행 결과 -->
<select id="select_render">
<option>기준월을 선택하세요.</option>
<option value="11">11 <월></option>
<option value="12">12 <월></option>
</select>
<script id="select_tmpl" type="text/tmpl">
<option value="{{key_month}}">{{=disp_month}}</option>
</script>
'논문' 카테고리의 다른 글
jquery.hTmpl v1.5 공개(html Templating) (0) | 2019.08.02 |
---|---|
HTML Template 전처리 Filter (0) | 2019.07.27 |
jquery.hTmpl v1.3 공개 (엣치 템플 = 간결한 html Templating 추구) (0) | 2019.04.19 |
jquery.eachTmpl v1.2 공개 (0) | 2018.09.13 |
jquery.tmplEach v1.1 공개 (0) | 2018.08.02 |