티스토리 뷰
1. express-handlebars 설치( 터미털에서 )
npm install express-handlebars --save
2. handlebars 등록
var exphbs = require('express-handlebars');
//여기서 매개변수 app은 var app=express(); 로 익스프레스앱을 뜻함.
module.exports=function(app) {
//handlebars template
app.engine('handlebars', exphbs.create({
defaultLayout:'main', // 디폴트레이아웃사용.
layoutDir:app.get('views')+'/layouts', //레이아웃 파일( handlebars ) 경로
partialsDir:[app.get('views')+'/partials'], //파셜 파일 경로
helpers:{ //전역 헬퍼등록
timeago:function(timestamp) {
return moment(timestamp).startOf('minute').fromNow();
}
}
}).engine);
app.set('view engine', 'handlebars'); // handlebars 등록
return app;
};
아래 객체가 핸들바 템플릿으로 넘겨졌다고 가정.
var model={
name:'World'
}
템플릿은 다음 마크업을 포함한다.
<div>Hello {{ name }} !</div>
이 파일은 브라우저에서 확인해 보면 Hello World 라고 찍히게 된다.
{{ }} --> 데이터 바인딩 되는 부분
{{{ }}} --> 핸들바의 예약어인데 레이아웃과 관련해서 사용. 핸들바의 콘텐츠가 삽입된다.
{{ > }} --> 핸들바 파셜뷰 그리는데 사용. 즉 작은 뷰 삽입 / 재사용 콤포넌트 삽입용도 정도로 이해~
조건문( 참일 경우 )
var model={
name:'World',
description:'역시 프로그래밍은 헬로월드부터~'
}
<div>
Hello {{name}}!<br />
{{#if description}}
<p>{{descripion}}</p>
{{/if}}
</div>
조건문( 거짓일 경우 )
var model={
name:'World',
description:'역시 프로그래밍은 헬로월드부터~'
}
<div>
Hello {{name}}!<br />
{{#unless description}}
<p>{{descripion}}</p>
{{/if}}
</div>
루프 템플릿
- 핸들바의 루프템플릿 내부에서는 실행 컨텍스트가 바뀐다.
이는 각 each 내부에서 데이터에 접근할 때 컬렉션의 각 항목부터 경로가 시작된다는 뜻.
{{#each dataName}}
<div class="col-md-4 text-center" style="padding-bottom:1em;">
<a href="/">
<img src="......" alt="{{title}}" class="img-thumbnail"/>
</a>
</div>
{{/each}}
'Programming language > javascript' 카테고리의 다른 글
놓치기 쉬운 사항들 ( 기본에 충실하자 ) (0) | 2017.09.15 |
---|---|
multer 사용법( 파일 업로드 ) (0) | 2017.07.19 |
slick.js ( 슬라이드 / 캐러셀 라이브러리 ) (0) | 2017.06.22 |
nvm 설정. (2) | 2017.06.01 |
http-server 옵션 (0) | 2017.06.01 |
- Total
- Today
- Yesterday
- svg모션
- 코도바
- JsDoc
- Intrinsic
- 자바스크립트
- svg icon font
- anime.js
- vue-router
- 반복문
- for of 구문
- interceptors
- icon font
- 태그
- IntrinsicElements
- react
- 아이콘 폰트 만들기
- react-router-dom
- RefreshToken
- 리프래시토큰
- Vue3
- cordova
- Aptana
- 내장요소
- React.StrictMode
- CSS
- svg 폰트
- Angular
- git
- git checkout -b
- 앵귤러
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |