Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中


Posted in Javascript onOctober 29, 2011
$("#div").bindTemplate({ 
source : json object, 
template : null | $("#template") | "<div>{{object}}</div>", 
dateFormat : "d.m.y", 
tagOpen : "{{", 
tagClose : "}}" 
});

bindTemplate(data) : 绑定数据对象到模板的操作方法

source : json 格式的数据源

template :

null 不提供模板,InnerHtml输出
$(“#template”) 利用页面上定义好的html结构作为模板
“<div>{{...}}</div>” 直接定义模板
dateFormat : 时间的格式化方式

tagOpen : 开始的标记标签

tagClose : 结束的标记标签

其中dateFormat, tagOpen, tagClose都可以为null采用默认的配置, 有必要说一下默认的tagOpen & tagClose是用”{{” 和 ”}}”标记的

Json2Template 的应用
下面我们通过一下小例子来看看Json2Template的简单用法

创建一个MVC3的空项目

首先我们需要一个对象来存储传递的数据

public class UserInfo 
{ 
public int ID { get; set; } 
public string Name { get; set; } 
public int Age { get; set; } 
public string Address { get; set; } 
}

虚拟一个数据集合, 因为实际的应用场景中是通过查询数据库得到的
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; 
}

这些基础的东西准备好了, 我们需要把这个集合序列化成json一便提供给Json2Template使用, 这里我采用Newtonsoft.Json! 这里我们需要定义个Action
public JsonResult GetUserInfo() 
{ 
return Json(Newtonsoft.Json.JsonConvert.SerializeObject(InitUserInfo()), JsonRequestBehavior.AllowGet); 
}

序列化我们的集合为json 并且启用Get请求以便ajax通过Get方式调用

添加对json2template.js的引用后我们就开始一个ajax请求, 来获取后台的json数据, 再把获取的数据通过bindTemplate来帮定到HTML模板中显示出来

首先我们定义个简单的HTML模板:

<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容器

<div id="userlist"></div>

最后按照我们事先构想好的方式来请求json 数据并帮定模板
<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运行一下看看效果

Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中

比较简单,鉴于从理论上来讲它确实还不错, 故推荐给大家!希望对你有帮助

源代码: Sample.Json2Template.rar

Javascript 相关文章推荐
JS request函数 用来获取url参数
May 17 Javascript
JavaScript对象之深度克隆介绍
Dec 08 Javascript
JQuery右键菜单插件ContextMenu使用指南
Dec 19 Javascript
javascript 获取浏览器版本
Jan 21 Javascript
js模仿java的Map集合详解
Jan 06 Javascript
15位和18位身份证JS校验的简单实例
Jul 18 Javascript
详解javascript事件绑定使用方法
Oct 20 Javascript
vue系列之动态路由详解【原创】
Sep 10 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
May 31 jQuery
javascript实现点击星星小游戏
Dec 24 Javascript
微信小程序新闻网站详情页实例代码
Jan 10 Javascript
JS精髓原型链继承及构造函数继承问题纠正
Jun 16 Javascript
基于jQuery的输入框在光标位置插入内容, 并选中
Oct 29 #Javascript
基于jquery的无限级联下拉框js插件
Oct 29 #Javascript
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
Oct 29 #Javascript
仿猪八戒网左下角的文字滚动效果
Oct 28 #Javascript
js实现双向链表互联网机顶盒实战应用实现
Oct 28 #Javascript
js常用代码段收集
Oct 28 #Javascript
jWiard 基于JQuery的强大的向导控件介绍
Oct 28 #Javascript
You might like
php 变量未定义等错误的解决方法
2011/01/12 PHP
php输出xml必须header的解决方法
2014/10/17 PHP
php中heredoc与nowdoc介绍
2014/12/25 PHP
使用laravel根据用户类型来显示或隐藏字段
2019/10/17 PHP
js事件监听器用法实例详解
2015/06/01 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
angular ngClick阻止冒泡使用默认行为的方法
2016/11/03 Javascript
完美的js图片轮换效果
2017/02/05 Javascript
微信小程序解除10个请求并发限制
2018/12/18 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
vue中使用GraphQL的实例代码
2019/11/04 Javascript
vue 防止页面加载时看到花括号的解决操作
2020/11/09 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
[03:00]《DAC最前线》之欧美新秀VS老将
2015/02/01 DOTA
整理Python中的赋值运算符
2015/05/13 Python
python3抓取中文网页的方法
2015/07/28 Python
python在不同层级目录import模块的方法
2016/01/31 Python
深入理解python中的select模块
2017/04/23 Python
pygame实现弹力球及其变速效果
2017/07/03 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
2018/04/17 Python
python感知机实现代码
2019/01/18 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
OpenCV哈里斯(Harris)角点检测的实现
2020/01/15 Python
python用什么编辑器进行项目开发
2020/06/17 Python
Python tkinter实现日期选择器
2021/02/22 Python
CSS3制作炫酷的下拉菜单及弹起式选单的实例分享
2016/05/17 HTML / CSS
CSS3实现图片抽屉式效果的示例代码
2019/11/06 HTML / CSS
HTML5 MiranaVideo播放器 (代码开源)
2010/06/11 HTML / CSS
BISSELL官网:北美吸尘器第一品牌
2019/03/14 全球购物
SmartBuyGlasses比利时:购买品牌太阳镜和眼镜
2019/08/09 全球购物
内科护士实习自我鉴定
2013/10/17 职场文书
美工的岗位职责
2013/11/14 职场文书
DIY手工制作经营店创业计划书
2014/02/01 职场文书
工程建设实施方案
2014/03/14 职场文书
商业用房租赁协议书
2014/10/13 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书