1. 程式人生 > >渲染模板template_(內容管理系統總結3)

渲染模板template_(內容管理系統總結3)

2 template模板渲染

因為前面的總結中看到了script type=”text/html” ,在總結這章的時候又看到了script type=”text/template”,所以我就順便的研究了下這個type的意義。

必需的 type type: 規定指令碼的 MIME 型別。
MIME 型別:(Multipurpose Internet Mail Extensions) 是描述訊息內容型別的因特網標準。
MIME 訊息能包含文字、影象、音訊、視訊以及其他應用程式專用的資料

所以我們通過這個type型別來分析用那個解析器來解析這段程式碼。

這個渲染模板是underscore裡邊的方法,所以我們要引用的是underscore.js這個js檔案
首先看個能跑起來的程式碼把,其實也就是相對於上一章的render渲染改了一點:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="jquery-1.10.2.min.js"></script>
    <script src="ejs.js"></script>
    <script src="underscore.min.js"></script>

    <style
type="text/css">
.test{ display:table; height:400px; width:400px; background:#99cc99; border-radius:5px; border:1px solid #f70; } .test > span{ display:table-cell; vertical-align
:middle
; text-align:center; }
.test > span > img{ height:200px; width:200px; border-radius:50%; box-shadow:1px 1px 3px rgba(0,0,0,.5); display: inline-block!important; } .hide{ display: none!important; }
</style> <script id="testName" type="text/html"> <div class="name"> <ul class="<%= nameType%>"> <% for(var i= 0;i<data.info.list.name.length;i++) { %> <li class="list"><%= data.info.list.name[i] %></li> <% } %> </ul> </div> </script> </head> <body> <div class="test"> <span><img class="hide" src="http://d.hiphotos.baidu.com/image/h%3D200/sign=8663264274f082023292963f7bfbfb8a/f3d3572c11dfa9eca13b947665d0f703918fc1be.jpg" alt=""></span> <a href="www.baidu.com">點我嘍!</a> </div> <script> function render(id, data, isJQuery) { var html = new EJS({ element: id }).render(data); return isJQuery ? $(html) : html; } $(".test").click(function(){ alert("test測試"); }); $(".test img").click(function(){ alert("img測試"); return false; }); $(".test a").click(function(){ alert("哈哈,我就是來阻止你的~"); return false; }); var data = { info : { list:{ name:["hello","nihao","xining"] } } } // var $nameHtml =render(testName,{data:data,nameType:"nameul"}); // var $nameHtml =new EJS({element:testName}).render({data:data,nameType:"nameul"}); var $nameHtml = _.template($("#testName").html())({data:data,nameType:"nameul"}); $("body").append($nameHtml); </script> </body> </html>

這個程式碼很好理解,這裡沒有統一的定義template方法,因為template這個比較方便的,所以就沒有寫總體的方法了。

underscore.js還有很多的其他的方法,都可以使用的。推薦underscore.js的中文文件檢視:
underscore.js中文文件檢視
_.方法名:這其實就是標準的underscore.js的使用了。