Json2Template.js 基于jquery的插件 綁定JavaScript對(duì)象到Html模板中
$("#div").bindTemplate({
source : json object,
template : null | $("#template") | "<div>{{object}}</div>",
dateFormat : "d.m.y",
tagOpen : "{{",
tagClose : "}}"
});
bindTemplate(data) : 綁定數(shù)據(jù)對(duì)象到模板的操作方法
source : json 格式的數(shù)據(jù)源
template :
null 不提供模板,InnerHtml輸出
$(“#template”) 利用頁面上定義好的html結(jié)構(gòu)作為模板
“<div>{{...}}</div>” 直接定義模板
dateFormat : 時(shí)間的格式化方式
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的簡(jiǎn)單用法
創(chuàng)建一個(gè)MVC3的空項(xiàng)目
首先我們需要一個(gè)對(duì)象來存儲(chǔ)傳遞的數(shù)據(jù)
public class UserInfo
{
public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Address { get; set; }
}
虛擬一個(gè)數(shù)據(jù)集合, 因?yàn)閷?shí)際的應(yīng)用場(chǎng)景中是通過查詢數(shù)據(jù)庫(kù)得到的
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)備好了, 我們需要把這個(gè)集合序列化成json一便提供給Json2Template使用, 這里我采用Newtonsoft.Json! 這里我們需要定義個(gè)Action
public JsonResult GetUserInfo()
{
return Json(Newtonsoft.Json.JsonConvert.SerializeObject(InitUserInfo()), JsonRequestBehavior.AllowGet);
}
序列化我們的集合為json 并且啟用Get請(qǐng)求以便ajax通過Get方式調(diào)用
添加對(duì)json2template.js的引用后我們就開始一個(gè)ajax請(qǐng)求, 來獲取后臺(tái)的json數(shù)據(jù), 再把獲取的數(shù)據(jù)通過bindTemplate來幫定到HTML模板中顯示出來
首先我們定義個(gè)簡(jiǎn)單的HTML模板:
<div id="template-userinfo" style="display: none">
<table width="100%">
<tr><th>編號(hào)</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對(duì)象的子集類似forearch }
再定義一個(gè)用來輸出這個(gè)模板的html容器
<div id="userlist"></div>
最后按照我們事先構(gòu)想好的方式來請(qǐng)求json 數(shù)據(jù)并幫定模板
<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)行一下看看效果

比較簡(jiǎn)單,鑒于從理論上來講它確實(shí)還不錯(cuò), 故推薦給大家!希望對(duì)你有幫助
- 一個(gè)可綁定數(shù)據(jù)源的jQuery數(shù)據(jù)表格插件
- Angular指令封裝jQuery日期時(shí)間插件datetimepicker實(shí)現(xiàn)雙向綁定示例
- Jquery 模板數(shù)據(jù)綁定插件的使用方法詳解
- jquery彈窗插件colorbox綁定動(dòng)態(tài)生成元素的方法
- Vue.js列表渲染綁定jQuery插件的正確姿勢(shì)
- jQuery給動(dòng)態(tài)添加的元素綁定事件的方法
- jquery移除、綁定、觸發(fā)元素事件使用示例詳解
- JQuery中綁定事件(bind())和移除事件(unbind())
- jQuery事件的綁定、觸發(fā)、及監(jiān)聽方法簡(jiǎn)單說明
- jQuery事件綁定和委托實(shí)例
- jQuery事件綁定on()、bind()與delegate() 方法詳解
- jquery 插件重新綁定的處理方法分析
相關(guān)文章
基于jquery點(diǎn)擊自以外任意處,關(guān)閉自身的代碼
主要功能是點(diǎn)擊顯示,然后通過點(diǎn)擊頁面的任意位置都能關(guān)閉顯示效果,主要是$(document).click的作用2012-02-02
使用js dom和jquery分別實(shí)現(xiàn)簡(jiǎn)單增刪改
今天學(xué)了jquery框架的簡(jiǎn)單使用。于是用它實(shí)現(xiàn)簡(jiǎn)單的增刪改,接著也用原始的javascript實(shí)現(xiàn)同樣的功能,兩者對(duì)比可以看出jquery的強(qiáng)大2014-09-09
基于jQuery實(shí)現(xiàn)仿百度首頁換膚背景圖片切換代碼
現(xiàn)在介紹網(wǎng)頁換膚的例子已經(jīng)數(shù)不勝數(shù),自己也沒有仔細(xì)研究過,剛搞遇到類似這個(gè)問題,網(wǎng)上查了資料解決了問題,感覺很有用,就記錄了下來,本文給大家分享基于jQuery實(shí)現(xiàn)仿百度首頁換膚背景圖片切換代碼,需要的朋友可以參考下2015-08-08
jquery實(shí)現(xiàn)背景墻聚光燈效果示例分享
這篇文章主要介紹了jquery實(shí)現(xiàn)背景墻聚光燈效果示例,需要的朋友可以參考下2014-03-03
如何使用jquery easyui創(chuàng)建標(biāo)簽組件
這篇文章主要介紹了如何使用jquery easyui創(chuàng)建標(biāo)簽組件的相關(guān)資料,需要的朋友可以參考下2015-11-11
jquery編寫彈出信息提示條并延時(shí)滑出動(dòng)畫實(shí)現(xiàn)示例
這篇文章主要為大家介紹了jquery編寫彈出信息提示條并延時(shí)滑出動(dòng)畫實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
jQuery動(dòng)態(tài)添加元素?zé)o法觸發(fā)綁定事件的解決方法分析
這篇文章主要介紹了jQuery動(dòng)態(tài)添加元素?zé)o法觸發(fā)綁定事件的解決方法,結(jié)合實(shí)例形式分析了動(dòng)態(tài)添加元素?zé)o法綁定事件的原因與相關(guān)解決方法,需要的朋友可以參考下2018-01-01
Jquery知識(shí)點(diǎn)一 Jquery的ready和Dom的onload的區(qū)別
onload是所有dom元素創(chuàng)建完畢,圖片、css等都加在完畢后才觸發(fā) ready則是dom元素創(chuàng)建完畢后就被觸發(fā)2011-01-01

