iT邦幫忙

DAY 18
0

Sharping up with UnderScore.js library系列 第 19

Underscore [18] : 使用 template 樣板引擎

  • 分享至 

  • xImage
  •  

今天來介紹 Underscore 的樣板引擎 , 其使用了 _.template 的關鍵字 ,

在使用之前我們得知道為啥使用樣板引擎 ? 它解決了啥問題 ?

我們常會獲得如 JSON , XML 這樣的資料來源 , 而我們需要將這些資料展示在 HTML ,

所以我們得在 JS 裡面寫好混合 html 和 資料的東西 , 然後一起返回 ,

而樣板引擎通常賦予我們分離資料與 html 的能力 , 這也是目前其他 JS framework 都有的功能 ,

其目的就是為了解決這個問題 ,

我們底下的範例會讓資料直接繫結表格 ,

首先來定義我們的資料部份 :

var items = [
    {name:"Holmes2136"},
    {name:"Sherlock"},
    {name:"Conan"},
    {name:"Doyle"}
];

定義我們的樣板 :

<script type="text/html" id='table-data'>
    
    <% _.each(items,function(item,key,list){ %>
        <tr>
            <td><%= key %></td>
            <td><%= item.name %></td>
        </tr>
    <% }) %>

</script>

取得樣板的資料 :

var tableTemplate = $("#table-data").html();

讓表格繫結資料來源 :

$("table.outer tbody").html(_.template(tableTemplate,{items:items}));

如果我們刪除了某筆資料 , 那 html 會變化嗎 ?

Underscore 並非具有 Angular 的雙向繫結能力 , 所以你需要重新繫結 :

先來刪除掉 item 最後一筆資料 :

items.pop()

重新繫結 :

$("table.outer tbody").html(_.template(tableTemplate,{items:items}));

範例預覽 :

程式範例


上一篇
Underscore [17] : 使用 zip 情境
下一篇
Underscore [19] : 使用 uniqueId 情境
系列文
Sharping up with UnderScore.js library31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言