現(xiàn)有的模板解決方案
現(xiàn)在已經(jīng)有了許多JavaScript的解決方案模板,從這方面說,標(biāo)準(zhǔn)化的模板解決方案必然是大勢所趨。在本節(jié)中,我們向你簡要描述四個最流行最有趣的模板,F(xiàn)有的模板解決方案能解決什么?那些特色在jQuery核心中有意義。
微模板
John Resig的微型模板引擎非常小(未壓縮僅2KB)。然而,這點(diǎn)小小的代碼已經(jīng)抓到了渲染一個模板的核心功能。
下面是一個用微模板引擎顯示單個JavaScript產(chǎn)品對象的例子。
<script src="../jquery-1.4.1.js" type="text/javascript">>;/script>; <script src="MicroTemplating.js" type="text/javascript">;</script>; <script type="text/javascript">; var product = { name: "Laptop", price: 788.67 }; $(showProduct); function showProduct() { $("#results").html( tmpl("productTemplate", product) ); } function formatPrice(price) { return "$" + price; } </script>;
tmpl()方法用來從一個product模板和product對象生成一個字符串。其結(jié)果分配給一個名叫results的div元素的innerHTML。
product模板在頁面body的SCRIPT中定義。
<script type="text/html" id="productTemplate"> Product Name: <%= name %> <br /> Product Price: <%= formatPrice(price) %> </script> <div id="results"></div>
注意,SCRIPT的type屬性為“text/ html”。用這種方式來聲明web瀏覽器會忽略SCRIPT里的內(nèi)容,將其內(nèi)容當(dāng)作字符串來對待。
注意,模板包含代表產(chǎn)品名稱和價格屬性的表達(dá)式。調(diào)用JavaScript的formatPrice()方法來格式化產(chǎn)品的價格。在模板里你可以調(diào)用任何JavaScript函數(shù)。
這里是如何渲染一個product對象數(shù)組的示例:
function showProducts() { // parse the template var template = tmpl("productTemplate"); // loop through the products var results = ''; for (var i = 0; i < products.length; i++) { results += template(products[i]); } // show the results $("#results").html(results); }
tmpl()函數(shù)支持currying(關(guān)于什么currying,可以在網(wǎng)上查閱資料)。如果沒有提供數(shù)據(jù)給tmpl()函數(shù),他將返回一個javascript函數(shù),代表解析的模板。
在上面的代碼中,模板被解析,然后為每一個product調(diào)用模板方法生成一個字符串。最后,字符串分配給名叫results的div元素的innerHTML。
出處:
責(zé)任編輯:moby
上一頁 jQuery模板提案 [1] 下一頁 jQuery模板提案 [3]
◎進(jìn)入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|