JUI í”„ë ˆìž„ì›Œí¬ì˜ 스타ì¼ì€ jui í´ëž˜ìŠ¤ê°€ ì„¤ì •ë˜ì–´ 있는 마í¬ì—…ì˜ í•˜ìœ„ì—서만 ì‚¬ìš©í• ìˆ˜ 있으며, 문서 최ìƒë‹¨ì— <!DOCTYPE HTML>ê°€ ì„ ì–¸ë˜ì–´ 있어야 합니다.
<body class="jui">
...
</body>
ready ë©”ì†Œë“œì˜ ì½œë°± ë‚´ë¶€ì—서 ì»´í¬ë„ŒíЏ ëª¨ë“ˆì„ ì‚¬ìš©í• ìˆ˜ 있습니다.
jui.ready([ "ui.combo", "grid.table" ], function(combo, table) {
var combo = combo(selector, options),
table = table(selector, options);
//...
});
ready ë©”ì†Œë“œì˜ ì½œë°± 외부ì—ì„œë„ ì»´í¬ë„ŒíЏ ê°ì²´ë¥¼ ë™ì 으로 ìƒì„±í• 수 있는 ê¸°ëŠ¥ì„ ì œê³µí•©ë‹ˆë‹¤. 한가지 주ì˜í•´ì•¼ í• ì‚¬í•ì€ create 메소드는 ready ë©”ì†Œë“œì˜ ì½œë°±ì´ ì‹¤í–‰ëœ ì´í›„ì— ì‚¬ìš©í• ìˆ˜ 있습니다.
var combo = jui.create("ui.combo", selector, options),
table = jui.create("grid.table", selector, options);
//...
ì»´í¬ë„ŒíЏ ê°ì²´ë¥¼ ìƒì„±í• 때, ì…€ë ‰í„°ê°€ 단ì¼ì´ 아닌 ë‹¤ìˆ˜ì¼ ê²½ìš°ì—는 ê²°ê³¼ ê°’ì€ ê°ì²´ê°€ 아닌 배열로 ê°€ì ¸ì˜µë‹ˆë‹¤.
<span class="tooltip" title="Tooltip Message">Tooltip 1</span>
<span class="tooltip" title="Tooltip Message">Tooltip 2</span>
jui.ready([ "ui.tooltip" ], function(tooltip) {
var tips = tooltip(".tooltip");
tips[0].show();
tips[1].show();
});
JUI는 템플릿 ê¸°ë°˜ì˜ UI ë¼ì´ë¸ŒëŸ¬ë¦¬ìž…니다. í…œí”Œë¦¿ì„ ì„¤ì •í•˜ëŠ” ë°©ë²•ì€ ì•„ëž˜ì™€ ê°™ì´ ë‘ ê°€ì§€ë¥¼ ì œê³µí•©ë‹ˆë‹¤.
ë¨¼ì € 템플릿 스í¬ë¦½íЏ íƒœê·¸ì— ëŒ€ìƒ í…Œì´ë¸”ì˜ ì…€ë ‰í„°ë¥¼ data-jui ì†ì„±ì— ìž…ë ¥í•˜ê³ , 추가로 템플릿 íƒ€ìž…ì„ data-tpl ì†ì„±ì— ì„¤ì •í•©ë‹ˆë‹¤.
<table id="table" class="table classic">
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th>Location</th>
</tr>
</thead>
<tbody></tbody>
</table>
<script data-jui="#table" data-tpl="row" type="text/template">
<tr>
<td><!= name !></td>
<td><!= age !></td>
<td><!= location !></td>
</tr>
</script>
jui.ready([ "grid.table" ], function(table) {
var table = table("#table");
table.update([
{ name: "Hong", age: 29, location: "Ilsan" },
{ name: "Jung", age: 25, location: "Dangsan" }
]);
});
위와 ê°™ì´ data-jui와 data-tpl ì†ì„±ì„ ì„¤ì •í•˜ì§€ ì•Šê³ , 해당 템플릿 스í¬ë¦½íЏ íƒœê·¸ì˜ ë‚´ìš©ì„ ì§ì ‘ ê°€ì ¸ì™€ì„œ í…Œì´ë¸” ê°ì²´ ìƒì„±ì‹œì— tpl 옵션으로 추가하는 ë°©ë²•ë„ ì œê³µí•©ë‹ˆë‹¤. ì´ì™€ ê°™ì€ ë°©ë²•ìœ¼ë¡œ í…œí”Œë¦¿ì„ ì„¤ì •í•˜ë©´ ë‹¤ìˆ˜ì˜ í…Œì´ë¸” ê°ì²´ì—서 ê°™ì´ ì‚¬ìš©í• ìˆ˜ 있기 ë•Œë¬¸ì— ì¤‘ë³µ 코드를 최소화 í• ìˆ˜ 있습니다.
<script id="tpl_table" type="text/template">
<tr>
<td><!= name !></td>
<td><!= age !></td>
<td><!= location !></td>
</tr>
</script>
jui.ready([ "grid.table" ], function(table) {
var table = table("#table", {
tpl: {
row: $("#tpl_table").html();
}
});
table.update([
{ name: "Hong", age: 29, location: "Ilsan" },
{ name: "Jung", age: 25, location: "Dangsan" }
]);
});
ì°¸ê³ ë¡œ JUI í”„ë ˆìž„ì›Œí¬ì—서 ì´ 10ì¢…ì˜ UI ì»´í¬ë„ŒíŠ¸ê°€ í…œí”Œë¦¿ì„ ì‚¬ìš©í•©ë‹ˆë‹¤.
table, xtable, tree-table, dropdown, tab, tree, paging, autocomplete, datepicker, notify
ì»´í¬ë„ŒíЏ ëª¨ë“ˆì„ ìƒˆë¡œ ì •ì˜í•˜ê¸° 위해서는 해당 ë©”ì†Œë“œì˜ ë§¤ê°œë³€ìˆ˜ë¥¼ ìƒì„±í• 모듈명과 ë¡œë“œí• ëª¨ë“ˆëª… 리스트를 ì„¤ì •í•˜ê³ , 마지막 콜백 함수를 통해 ë¡œë“œëœ ëª¨ë“ˆ ê°ì²´ë¥¼ 순서대로 ë°›ì„ ìˆ˜ 있습니다.
jui.defineUI("ui.test", [ "util.base" ], function(_) {
var UI = function() {
this.init = function() {
// 초기 구현부
}
this.func1 = function(val) {
// 공개 메소드 1
}
}
UI.setup = function() {
return { // UI 옵션 기본값 ì„¤ì •
option1: 1000,
option2: true
}
}
return UI;
});
UI.setupì€ í•´ë‹¹ ì»´í¬ë„ŒíЏì—서 ì‚¬ìš©í• ì˜µì…˜ì„ ì •ì˜í•˜ëŠ” 메소드ì´ë©°, initì€ ì»´í¬ë„ŒíЏ ê°ì²´ê°€ ìƒì„±ë˜ì—ˆì„ ê²½ìš°ì— ìµœì´ˆë¡œ 실행ë˜ëŠ” 메소드입니다. ê·¸ë ‡ê¸° ë•Œë¬¸ì— ì‹ ê·œ ì»´í¬ë„ŒíŠ¸ë¥¼ ì •ì˜í•˜ê¸° 위해서는 필수ì 으로 구현해야 합니다.