jquery.tmpl的使用


jquery.tmpl是jQuery模板插件,http://plugins.jquery.com/tmpl/ (另外還有一個插件dot.js,不依賴與jquery,性能更佳,使用方法大同小異)

        在網頁中大量使用異步請求數據來更新頁面內容非常常見,異步請求返回的內容一般是表現為json格式的數據,因為HTML結構的復雜性,我們在沒有使用任何工具下要將json表現格式的數據生成HTML是非常繁瑣的,而且容易出錯,不好維護。因此通過jquery.tmpl和定義HTML模板可以輕松很多,更利於維護。

 Tmpl提供了幾種tag:

    1,   ${}:等同於{{=}},是輸出變量,通過了html編碼的。

    2,  {{html}}:輸出變量html,但是沒有html編碼,適合輸出html代碼。

    3,  {{if }} {{else}}:提供了分支邏輯。

    4,  {{each}}:提供循環邏輯,$value訪問迭代變量。

 

基本使用

     1,首先我們需要引用jquery.js和jquery.tmpl.js

     2,定義一個模板

     3,調用tmpl()方法:$("模板ID").tmpl(data);

 

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title> new document </title> 
 </head>
<style type="text/css">
#list li {
  padding: 8px 0;
  line-height: 1.8em;
  list-style-type: decimal;
}
</style>
 <body>
   <ul id="list"></ul>
 </body>
</html>
<script type="text/javascript" src='jquery.js'></script>
<script type="text/javascript" src='jquery.tmpl.js'></script>
<!--定義一個User模板--> <script type="text/template" id='UserTmpl'> <li> <span>${NickName}</span> <span>${Age}</span> <span>${Gender}<span> </li> </script> <script type="text/javascript"> var users=[{ID:"0001",NickName:"小白",Gender:false,Age:18},{ID:"0001",NickName:"小黑",Gender:true,Age:20}]; $("#list").append($("#UserTmpl").tmpl(users)); </script>

 

  

{{if }} {{else}}的使用

明顯對於性別Gender屬性需要使用到{{if}}和{{else}}了

修改一下模板  {{if}}后面加的就是符合if里面條件后要輸出的HTML,  使用{{if}}需要有結束標記{{/if}}

 <li>      
        <span>${NickName}</span>
	<span>${Age}</span>
	{{if Gender}}
	<span>男</span>
	{{else}}
	<span>女</span>
	{{/if}}
</li>

 {{each}}使用

<script id="each" type="text/x-jquery-tmpl"> 
    <li>
	   <span>${Title}</span>
	   <span>Languages:</span>
	   <ul>
	      {{each Languages}}
		  <li>${$value.Name}</li>
		  {{/each}}
	   <ul>
	</li>
</script> 
<script type="text/javascript">
    var movies = [{Title: "Meet Joe Black", Languages: [{ Name: "English" },{ Name: "French" }]}];  
  $("#each").tmpl(movies).appendTo('#div_each');
</script>

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM