2008년 04월 29일
jQuery을 이용한 클라이언트측 UI templating.
ajax로 뭔가를 얻어와서 화면에 뿌려줄 경우에 다수의 경우엔 조금 난감할지도(서버측에서는 템플릿에서 for등이 항상 있지만)
그래서 다음처럼 꽤 괜찮은 방법을 사용하삼.
1. 반복하기 를 원하는 HTML element에 id을 부여하고, css스타일 "display: none"
<ul id='id_root'>
<li id='id_item' style='display: none'>FOO</li>
</ul>
2. 반복되는 내용을 먹는 요소를 얻으삼.
var root = $('#id_root');
3. 반복되는 내용의 템플릿 요소를 얻으삼. (1에서 얻은 요소의 문맥에서 얻어야 정확하겠져?) 그리고 이를 clone하여 사본으로 얻어내셈(다수인 경우에 중복되지 않도록)
var item = $('#id_item', root).clone();
4. 템플릿 객체의 내용들을 세팅하삼
item.html("no more FUBAR!!!");
5. 이를 다시 root에 붙여주고, show!
root.append(item);
item.show();
대략 이렇게 presentation은 html로 유지하고, ajax의 결과는 순수하게 표현을 제외한 json만으로 얻어도 좋게 되겠죠.
그래서 다음처럼 꽤 괜찮은 방법을 사용하삼.
1. 반복하기 를 원하는 HTML element에 id을 부여하고, css스타일 "display: none"
<ul id='id_root'>
<li id='id_item' style='display: none'>FOO</li>
</ul>
2. 반복되는 내용을 먹는 요소를 얻으삼.
var root = $('#id_root');
3. 반복되는 내용의 템플릿 요소를 얻으삼. (1에서 얻은 요소의 문맥에서 얻어야 정확하겠져?) 그리고 이를 clone하여 사본으로 얻어내셈(다수인 경우에 중복되지 않도록)
var item = $('#id_item', root).clone();
4. 템플릿 객체의 내용들을 세팅하삼
item.html("no more FUBAR!!!");
5. 이를 다시 root에 붙여주고, show!
root.append(item);
item.show();
대략 이렇게 presentation은 html로 유지하고, ajax의 결과는 순수하게 표현을 제외한 json만으로 얻어도 좋게 되겠죠.
# by | 2008/04/29 19:10 | 삽질+돈되는짓 | 트랙백




☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]