jquery jtemplates.js模板渲染引擎的详细用法第一篇

jquery jtemplates.js模板渲染引擎的详细用法第一篇

Author:ching

Date:2016-06-29

jTemplates是一个基于JQuery的模板引擎插件,功能强大,有了他你就再不用为使用JS绑定数据时发愁了。后端语言使用php,asp.net,jsp等都不是问题,使用模板渲染可以很大程度上提高程序性能,使用异步获取数据,不用整个页面都回发,好处当然不仅仅是这些。

下载jtemplates,官网的文档写得非常的详细

打开官网:http://jtemplates.tpython.com/

左侧找到Download,然后直接点击要下载的文件即可,当前最新版本是0.8.4

jTemplates配合jQuery的delegate事件处理方法可以让你迷恋无法自拔。哈哈...

下面是详细用法总结:

jtemplates模板的简单使用,首先使用jtemplates就要使用json数据,在这里我们不妨构造一个json格式的数据,如下:

{
	"name" : "网马伦",
	"list_id" : 89757,
	"table":[
		{"id": 1, "name": "Rain", "age": 22, "mail": "[email protected]"},
		{"id": 2, "name": "皮特", "age": 24, "mail": "[email protected]"},
		{"id": 3, "name": "卡卡", "age": 20, "mail": "[email protected]"},
		{"id": 4, "name": "戏戏", "age": 26, "mail": "[email protected]"},
		{"id": 5, "name": "一揪", "age": 25, "mail": "[email protected]"}
	]
}

接下来新建一个页面jtemplates_demo1.html

然后引入jquery,我这里使用的是jquery-2.1.1.min.js,你可以在这里下载http://www.jquery.com/

引入js文件代码如下:

<script type="text/javascript" src="./js/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="./js/jquery-jtemplates.min.js"></script>

接下来构造模板样式

代码如下:

          <textarea id="template" class="template">
			<div><strong>部门编号:{$T.list_id}</strong></div>
			<div><strong>负责人:{$T.name} </strong></div>
			<div>
				<table>
					<tr>
						<th>编号</th>
						<th>姓名</th>
						<th>年龄</th>
						<th>邮箱</th>
					</tr>
					{#foreach $T.table as record}
					<tr>
						<td>{$T.record.id}</td>
						<td>{$T.record.name}</td>
						<td>{$T.record.age}</td>
						<td>{$T.record.mail}</td>
					</tr>
					{#/for}
				</table>
			</div>
		</textarea>

这个是我要最终显示的效果,也就是模板,然后模板定义好了,然后我们在定义一个最后用来承载显示数据的标签,一般用div或者其他标签均可,我这里使用div如下:

<div id="result"></div>

此时我们的显示数据的前台HTML标签就写好了,模板和result这两个的顺序没有要求,但是为了阅读方便这里使用如下顺序放置:

<div id="result"></div>
		<textarea id="template" class="template">
			<div><strong>部门编号:{$T.list_id}</strong></div>
			<div><strong>负责人:{$T.name} </strong></div>
			<div>
				<table>
					<tr>
						<th>编号</th>
						<th>姓名</th>
						<th>年龄</th>
						<th>邮箱</th>
					</tr>
					{#foreach $T.table as record}
					<tr>
						<td>{$T.record.id}</td>
						<td>{$T.record.name}</td>
						<td>{$T.record.age}</td>
						<td>{$T.record.mail}</td>
					</tr>
					{#/for}
				</table>
			</div>
		</textarea>

接下来就要在js中设置模板和处理数据啦,直接上代码,然后在解释代码的意思,代码如下:

<script type="text/javascript">
	$(function(){
		// 初始化JSON数据
		var data = {
	"name" : "网马伦",
			"list_id" : 89757,
			"table":[
				{"id": 1, "name": "Rain", "age": 22, "mail": "[email protected]"},
				{"id": 2, "name": "皮特", "age": 24, "mail": "[email protected]"},
				{"id": 3, "name": "卡卡", "age": 20, "mail": "[email protected]"},
				{"id": 4, "name": "戏戏", "age": 26, "mail": "[email protected]"},
				{"id": 5, "name": "一揪", "age": 25, "mail": "[email protected]"}
			]
		};

		// 设置模板
		$("#result").setTemplateElement("template");
		// 给模板加载数据
		$("#result").processTemplate(data);
	});
	</script>

首先我们在前面直接引用了jQuery,在这里直接写在$(function(){});里面就可以了,

$("#result").setTemplateElement("template");这一步非常关键,解释如下:

这一步的意思就是讲id="result"的div设置模板为id="template",然后就是处理数据,这里的打他就是json数据,这样就可以直接显示json数据了,这就是模板渲染,简单吧,下面是全部代码如下:

<!doctype html>

<html lang="zh-CN">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>jQuery - jTemplates</title>
	<link rel="stylesheet" type="text/css" href="./css/style.css">
	<script type="text/javascript" src="./js/jquery-2.1.1.min.js"></script>
	<script type="text/javascript" src="./js/jquery-jtemplates.min.js"></script>
	<style type="text/css">
	.container{
		width: 1000px;
		height: 600px;
		margin: 0 auto;
	}
	.template{
		display: none;
	}
	table{
		background-color: #fff;
	}
	table tr th{
		padding: 8px;
		border-bottom: 1px solid #eee;
	}
	table tr td{
		padding: 10px;
		border-bottom: 1px solid #eee;
	}
	</style>
	<script type="text/javascript">
	$(function(){
		// 初始化JSON数据
		var data = {
			"name" : "网马伦",
			"list_id" : 89757,
			"table":[
				{"id": 1, "name": "Rain", "age": 22, "mail": "[email protected]"},
				{"id": 2, "name": "皮特", "age": 24, "mail": "[email protected]"},
				{"id": 3, "name": "卡卡", "age": 20, "mail": "[email protected]"},
				{"id": 4, "name": "戏戏", "age": 26, "mail": "[email protected]"},
				{"id": 5, "name": "一揪", "age": 25, "mail": "[email protected]"}
			]
		};

		// 设置模板
		$("#result").setTemplateElement("template");
		// 给模板加载数据
		$("#result").processTemplate(data);
	});
	</script>
</head>
<body>
	<div class="container">
		<div><h1>标题</h1></div>
		<div id="result"></div>
		<textarea id="template" class="template">
			<div><strong>部门编号:{$T.list_id}</strong></div>
			<div><strong>负责人:{$T.name} </strong></div>
			<div>
				<table>
					<tr>
						<th>编号</th>
						<th>姓名</th>
						<th>年龄</th>
						<th>邮箱</th>
					</tr>
					{#foreach $T.table as record}
					<tr>
						<td>{$T.record.id}</td>
						<td>{$T.record.name}</td>
						<td>{$T.record.age}</td>
						<td>{$T.record.mail}</td>
					</tr>
					{#/for}
				</table>
			</div>
		</textarea>

		<!-- <textarea id="templateContainer" style="display: none;">
	        <table>
	            <tr>
	                <td>Id</td>
	                <td>标题</td>
	                <td>发布时间</td>
	            </tr>
	            {#foreach $T.Lists as row}
	            <tr>
	                <td>{$T.row.Id}</td>
	                <td>{$T.row.Title}</td>
	                <td>{$T.row.CreateDate}</td>
	            </tr>
	            {#/for}
	        </table>
	    </textarea> -->
	</div>
</body>
</html>

这里需要注意几点:

1、首先模板样式必须要用<textarea></textarea>标签,否则也可以放入

<script id="template">
<div><strong>部门编号:{$T.list_id}</strong></div>
			<div><strong>负责人:{$T.name} </strong></div>
			<div>
				<table>
					<tr>
						<th>编号</th>
						<th>姓名</th>
						<th>年龄</th>
						<th>邮箱</th>
					</tr>
					{#foreach $T.table as record}
					<tr>
						<td>{$T.record.id}</td>
						<td>{$T.record.name}</td>
						<td>{$T.record.age}</td>
						<td>{$T.record.mail}</td>
					</tr>
					{#/for}
				</table>
			</div>
</script>

中,都是可以的

2、json格式必须是正确的,而且不能用单引号,都是双引号

最终显示效果如下:

时间: 2024-10-03 07:35:26

jquery jtemplates.js模板渲染引擎的详细用法第一篇的相关文章

jquery jtemplates.js模板渲染引擎的详细用法第二篇

jquery jtemplates.js模板渲染引擎的详细用法第二篇 关于jtemplates.js的用法在第一篇中已经讲过了,这里就直接上代码,不同之处是绑定模板的方式,这里讲模板的数据专门写一个template.html的文件来展示 <span style="font-family:Microsoft YaHei;font-size:14px;"><!doctype html> <html lang="zh-CN"> <

jquery jtemplates.js模板渲染引擎的详细用法第三篇

jquery jtemplates.js模板渲染引擎的详细用法第三篇 <span style="font-family:Microsoft YaHei;font-size:14px;"><!doctype html> <html lang="zh-CN"> <head> <meta http-equiv="Content-Type" content="text/html; chars

template.js 数据渲染引擎

template.js 数据渲染引擎 template.js是一款JavaScript模板引擎,用来渲染页面的. 原理:提前将Html代码放进编写模板 <script id="tpl" type="text/html"></script> 中,当需要渲染页面时,在js里这样调用: var tpl = document.getElementById('tpl').innerHTML; template(tpl, data}); template

0086 初识JavaScript:是什么、浏览器执行 JS(渲染引擎、解释引擎)、组成、初体验

3.1 JavaScript 是什么 JavaScript 是世界上最流行的语言之一,是一种运行在客户端的脚本语言 (Script 是脚本的意思) 脚本语言:不需要编译,运行过程中由 js 解释器( js 引擎)逐行来进行解释并执行 现在也可以基于 Node.js 技术进行服务器端编程 3.2 JavaScript的作用 表单动态校验(密码强度检测) ( JS 产生最初的目的 ) 网页特效 服务端开发(Node.js) 桌面程序(Electron) App(Cordova) 控制硬件-物联网(R

jquery validate.js表单验证的基本用法入门--不用写繁琐的验证代码了...

jquery.validate.js是jquery下的一个验证插件,功能比较强大,早就有所耳闻但是一只没有动手用过,现在在于能够研究一下了. 这里转载一篇前辈写的文章,在我自己的理解上修改了一下,仅作记录. 先贴一个国内某大公司的代码: 1 <script type="text/javascript"> 2 function lang(key) { 3 mylang = { 4 'ls_input_myb': '请输入您的账户', 5 'ls_myb_email': '漫游

jquery.tmpl.js 模板引擎用法

1.0 引入: <script src="/js/jquery.tmpl.min.js"></script> 2.0 模板: <script type="text/x-jquery-tmpl" id="tmpl"> <li> <h5><a href="/news/Detail/${NewsId}">${Title}</a></h5>

nunjucks.js模板渲染

直接用 script 引入文件: <script src="nunjucks.js"></script> 是使用 render 来直接渲染文件,这种方式支持继承(extends)和包含(include)模板.使用之前需要配置文件的路径: nunjucks.configure('views', { autoescape: true }); nunjucks.render('index.html', { foo: 'bar' }); 在 node 端,'views'

kubernetes之pod超详细解读--第一篇(三)

   小编在这里向各位博友道个歉,上篇文章确实写的有些应付,但怎么说,部署确实因人而异,而且很少有刚刚进公司就让你搭建一个集群,一般公司都有自己的集群,所以小编觉得,侧重点不应该在安装,应该在维护!虽然有些牵强,但小编保证,这一篇绝对有质量!希望看了小编的博客,大家对pod有更深入的认识.   这篇文章,小编打算介绍关于pod的11个重要的知识点,大家要有耐心的看下去哦!虽然内容比较多,有兴趣的朋友可以细细阅读,小编会尽可能的用比较容易理解的话和图,去介绍比较重要并且难以理解的地方. 1. po

jquery.chosen.js实现模糊搜索

jquery.chosen.js查询时,chosen默认从第一个字符搜索,所以写中间的字符搜索时,是搜索不出来的 若想实现中间字符的模糊查询,下面的js中(search_contains属性为true即可)可以让chosen搜索选项的中间及末尾字符 no_results_text是搜索不到内容时,显示的提示语 placeholder_text是下拉选项默认显示的文字 disable_search_threshold是select的option选项大于等于此值,才会显示查询的文本框 jQuery(