Json2Template.js 基于jquery的插件 綁定JavaScript對象到Html模板中
更新時間:2011年10月29日 19:03:05 作者:
Json2Template.js是一個Jquery插件, 用來綁定JavaScript對象到Html模板中
復(fù)制代碼 代碼如下:
$("#div").bindTemplate({
source : json object,
template : null | $("#template") | "<div>{{object}}</div>",
dateFormat : "d.m.y",
tagOpen : "{{",
tagClose : "}}"
});
bindTemplate(data) : 綁定數(shù)據(jù)對象到模板的操作方法
source : json 格式的數(shù)據(jù)源
template :
null 不提供模板,InnerHtml輸出
$(“#template”) 利用頁面上定義好的html結(jié)構(gòu)作為模板
“<div>{{...}}</div>” 直接定義模板
dateFormat : 時間的格式化方式
tagOpen : 開始的標(biāo)記標(biāo)簽
tagClose : 結(jié)束的標(biāo)記標(biāo)簽
其中dateFormat, tagOpen, tagClose都可以為null采用默認(rèn)的配置, 有必要說一下默認(rèn)的tagOpen & tagClose是用”{{” 和 ”}}”標(biāo)記的
Json2Template 的應(yīng)用
下面我們通過一下小例子來看看Json2Template的簡單用法
創(chuàng)建一個MVC3的空項目
首先我們需要一個對象來存儲傳遞的數(shù)據(jù)
復(fù)制代碼 代碼如下:
public class UserInfo
{
public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Address { get; set; }
}
虛擬一個數(shù)據(jù)集合, 因為實際的應(yīng)用場景中是通過查詢數(shù)據(jù)庫得到的
復(fù)制代碼 代碼如下:
private IList<UserInfo> InitUserInfo()
{
IList<UserInfo> users = new List<UserInfo>();
users.Add(new UserInfo() { ID = 1, Name = "Chenkun", Age = 21, Address = "Suzhou" });
users.Add(new UserInfo() { ID = 2, Name = "Zhangsan", Age = 21, Address = "Beijing" });
users.Add(new UserInfo() { ID = 3, Name = "Lisi", Age = 21, Address = "Henan" });
users.Add(new UserInfo() { ID = 4, Name = "Wangwu", Age = 21, Address = "Shanghai" });
users.Add(new UserInfo() { ID = 5, Name = "Zhaoliu", Age = 21, Address = "Guangzhou" });
users.Add(new UserInfo() { ID = 6, Name = "Huqi", Age = 21, Address = "Chongqing" });
return users;
}
這些基礎(chǔ)的東西準(zhǔn)備好了, 我們需要把這個集合序列化成json一便提供給Json2Template使用, 這里我采用Newtonsoft.Json! 這里我們需要定義個Action
復(fù)制代碼 代碼如下:
public JsonResult GetUserInfo()
{
return Json(Newtonsoft.Json.JsonConvert.SerializeObject(InitUserInfo()), JsonRequestBehavior.AllowGet);
}
序列化我們的集合為json 并且啟用Get請求以便ajax通過Get方式調(diào)用
添加對json2template.js的引用后我們就開始一個ajax請求, 來獲取后臺的json數(shù)據(jù), 再把獲取的數(shù)據(jù)通過bindTemplate來幫定到HTML模板中顯示出來
首先我們定義個簡單的HTML模板:
復(fù)制代碼 代碼如下:
<div id="template-userinfo" style="display: none">
<table width="100%">
<tr><th>編號</th><th>姓名</th><th>年齡</th><th>地址</th></tr>
<tr class="{{item}}">
<td>{{ID}}</td>
<td>{{Name}}</td>
<td>{{Age}}</td>
<td>{{Address}}</td>
</tr>
</table>
</div>
{ 注意:把{{item}}定義到class中表示遍歷item對象的子集類似forearch }
再定義一個用來輸出這個模板的html容器
復(fù)制代碼 代碼如下:
<div id="userlist"></div>
最后按照我們事先構(gòu)想好的方式來請求json 數(shù)據(jù)并幫定模板
復(fù)制代碼 代碼如下:
<script type="text/javascript">
$(document).ready(function () {
var dataSouce = {};
$.ajax(
{
url: '/home/getuserinfo',
dataType: "json",
success: function (data) {
dataSouce.item = JSON.parse(data);
$("#userlist").bindTemplate({ source: dataSouce, template: $("#template-userinfo") });
}
});
});
</script>
F5運(yùn)行一下看看效果
比較簡單,鑒于從理論上來講它確實還不錯, 故推薦給大家!希望對你有幫助
您可能感興趣的文章:
- 一個可綁定數(shù)據(jù)源的jQuery數(shù)據(jù)表格插件
- Angular指令封裝jQuery日期時間插件datetimepicker實現(xiàn)雙向綁定示例
- Jquery 模板數(shù)據(jù)綁定插件的使用方法詳解
- jquery彈窗插件colorbox綁定動態(tài)生成元素的方法
- Vue.js列表渲染綁定jQuery插件的正確姿勢
- jQuery給動態(tài)添加的元素綁定事件的方法
- jquery移除、綁定、觸發(fā)元素事件使用示例詳解
- JQuery中綁定事件(bind())和移除事件(unbind())
- jQuery事件的綁定、觸發(fā)、及監(jiān)聽方法簡單說明
- jQuery事件綁定和委托實例
- jQuery事件綁定on()、bind()與delegate() 方法詳解
- jquery 插件重新綁定的處理方法分析
相關(guān)文章
jquery之a(chǎn)jaxfileupload異步上傳插件(附工程代碼)
在處理文件上傳時需要使用到文件的異步上傳,這里使用Jquery Ajax File Uploader這個組件,服務(wù)器端采用struts2來處理文件上傳2013-04-04淺析jquery如何判斷滾動條滾到頁面底部并執(zhí)行事件
jquery如何判斷滾動條滾到頁面底部并執(zhí)行事件?下面小編就為大家?guī)硪黄猨query判斷滾動條滾到頁面底部并執(zhí)行事件方法。希望對大家有所幫助,一起跟隨小編過來看看吧2016-04-04