jTemplates是一个基于JQuery的模板引擎插件,功能强大,有了他你就再不用为使用JS绑定数据集时发愁了。
首先送上jTtemplates的官网地址:http://jtemplates.tpython.com/,你可以在这里下载代码和相关参考文档
在使用jTemplates时最好先定义好模板,你可以把它放在textarea文本框里如:
<textarea id="txtTemplate" style="display:none">
<![CDATA[
hello {$T.name}.
]]>
</textarea>
这样就定了一个简单的模板,下面再进行模板数据的定义:
var mydata = { name: 'Anne', age: '20' };
定义模板显示容器:
<div id="result1"></div>
通过简单的两行代码就可以完成模板的执行工作:
$("#result1").setTemplateElement("txtTemplate");
$("#result1").processTemplate(mydata);
显示结果:
hello Anne.
如何?是不是很简单方便且实用!
别急,这只是jTemplates强大功能的冰山一角。
jTemplates包含三个预定全局变量,分别是$T、$P、$Q
。$T为模板提供数据调用功能,$P为模板提供参数变量调用功能,$Q.version提供当前jTemplate的版本
下面介绍将会用到这些功能。
jTemplates还支持#if、#for、#cycle、#foreach、#include、#param
标签,帮助你处理实现复杂的业务情形。
#if 语法:
{#if |COND|}..{#elseif |COND|}..{#else}..{#/if}
#if 示例:
{#if $T.hello} hello world. {#/if}
{#if 2*8==16} good {#else} fail {#/if}
{#if $T.age>=18)} 成人了 {#else} 未成年 {#/if}
{#if $T.list_id == 3} System list {#elseif $T.list_id == 4} Users List {#elseif $T.list_id == 5} Errors list {#/if}
#for 语法:
{#for |VAR| = |CODE| to |CODE| [step=|CODE|]}..{#else}..{#/for}
或
{#for |variable| = |start| to |end| [step=|stepBy|]}..{#else}..{#/for}
#for 示例:
默认步长:{#for index = 1 to 10} {$T.index} {#/for}
正向步长:{#for index = 1 to 10 step=3} {$T.index} {#/for}
负向步长及空循环:{#for index = 1 to 10 step=-3} {$T.index} {#else} nothing {#/for}
也可以在循环中使用变量:{#for index = $T.start to $T.end step=$T.step} {$T.index} {#/for}
说明:{#else}是在{#for...}未能执行的时的输出内容。
#foreach 语法:
{#foreach |VAR| as |NAME| [begin=|CODE|] [count=|CODE|] [step=|CODE|]}..{#else}..{#/for}
#foreach 示例:
默认:{#foreach $T.table as record} {$T.record.name} {#/for}
指定起始位置:{#foreach $T.table as record begin=1} {$T.record.name} {#/for}
指定起始和循环次数:{#foreach $T.table as record begin=1 count=2} {$T.record.name} {#/for}
指定步长:{#foreach $T.table as record step=2} {$T.record.name} {#/for}
#foreach 内定环境变量:
$index - index of element in table
$iteration - id of iteration (next number begin from 0)
$first - is first iteration?
$last - is last iteration?
$total - total number of iterations
$key - key in object (name of element) (0.6.0+)
$typeof - type of element (0.6.0+)
#foreach 示例所需要的数据:
var data = {
name: 'User list',
list_id: 4,
table: [
{id: 1, name: 'Anne', age: 22, mail: 'anne@domain.com'},
{id: 2, name: 'Amelie', age: 24, mail: 'amelie@domain.com'},
{id: 3, name: 'Polly', age: 18, mail: 'polly@domain.com'},
{id: 4, name: 'Alice', age: 26, mail: 'alice@domain.com'},
{id: 5, name: 'Martha', age: 25, mail: 'martha@domain.com'}
]
};
(0.7.0+)版以后新增的功能,支持待循环集合用函数代替:
{#foreach |FUNC| as |NAME| [begin=|CODE|] [end=|CODE|] [count=|CODE|] [step=|CODE|]}..{#else}..{#/for}
例:
f = function(step) {
if(step > 100) return null; // stop if loop is too long
return "Step " + step;
};
$("#result").setTemplate("{#foreach f as funcValue begin=10 end=20} {$T.funcValue}<br/> {#/for}");
$("#result").processTemplate();
#foreach在每次循环时请求的就是f函数,然后传递参数给f使用,并返回结果给funcValue变量
#cycle 语法:
{#cycle values=|ARRAY|}
功能:提供周期性的调用,在循环中实现交替样式功能时可用到
示例:
{#cycle values=[1,2,3,4]}
下面模板在执行循环时,就会周期性的调用#cycle数组中的值,这样就能实现行交替的效果:
<table width=\"200\">
{#foreach $T.table as row}
<tr bgcolor=\"{#cycle values=['#AAAAAA','#CCCCCC']}\">
<td>{$T.row.name.link('mailto:'+$T.row.mail)}</td>
</tr>
{#/for}
</table>
#include 语法:
{#include |NAME| [root=|VAR|]}
功能:提供子模板调用
示例:
{#template MAIN}
{* this is comment *}
{$T} {* $T == $T.toSource() *}
<table>
{#foreach $T.table as record}
{#include ROW root=$T.record}
{#/for}
</table>
{#/template MAIN}
{#template ROW}
<tr class="{#cycle values=['bcEEC','bcCEE']}">
<td>{$T.name}</td>
<td>{$T.mail}</td>
</tr>
{#/template ROW}
说明:{#template MAIN} 是指定模板的主要部分,必不可少。
{#template ROW}是定义一个名为“ROW”的子模板。
{#include ROW root=$T.record}是主模板调用“ROW”子模板,并传递参数$T.record
#param 语法:
{#param name=|NAME| value=|CODE|}
功能:定义模板内的局部变量参数,使用$P调用。
示例:
$("#result").setTemplate("{#param name=x value=888}{$P.x}");
$("#result").processTemplate();
输出结果:888
示例:
$("#result").setTemplate("{#param name=x value=$P.x+1}{$P.x}");
$("#result").setParam('x', 777);
$("#result").processTemplate();
输出结果:778
示例:
$("#result").setTemplate("<ul>{#foreach $T.table as
row}<li>{$P.x} {$T.row.name}</li>{#param name=x
value=$P.x+3}{#/for}<ul>");
$("#result").setParam('x', 1);
$("#result").processTemplate(data);
需要数据:
var data = {
name: 'User list',
list_id: 4,
table: [
{id: 1, name: 'Anne', age: 22, mail: 'anne@domain.com'},
{id: 2, name: 'Amelie', age: 24, mail: 'amelie@domain.com'},
{id: 3, name: 'Polly', age: 18, mail: 'polly@domain.com'},
{id: 4, name: 'Alice', age: 26, mail: 'alice@domain.com'},
{id: 5, name: 'Martha', age: 25, mail: 'martha@domain.com'}
]
};
输出结果:
# 1 Anne
# 4 Amelia
# 7 Polly
# 10 Alice
# 13 Martha
分享到:
相关推荐
`jquery-jtemplates_uncompressed.js`是未压缩的源码版本,开发者可以通过阅读源码了解jTemplates的内部实现机制,如模板解析、数据绑定和DOM操作等。 ### 6. CSS样式 `TemplateCSS.css`可能是为示例模板提供的...
**jQuery jTemplates** 是一个强大的JavaScript模板引擎,它专门设计用于Web开发中的前端数据绑定。在Web应用程序中,数据和视图之间的分离是至关重要的,而jTemplates提供了一个高效的解决方案,使得开发者能够将...
jquery-jtemplates.js可以用,请放心下载,希望能帮到大家。
通过将数据绑定到预先定义的模板,jTemplates可以简化前端开发流程,使得更新和展示数据变得更加便捷。 **标签:“源码”、“工具”** **正文:** **一、jTemplates简介** jTemplates是一个轻量级的JavaScript库...
总结,jQuery.jTemplates为Web开发者提供了一种优雅的方式来处理数据绑定和动态内容生成,通过学习和实践这三个DEMO,你将对它的核心功能有深刻的理解。结合实际项目,不断探索和运用,你会发现它在构建复杂动态页面...
jTemplates是一款基于jQuery的模板引擎,旨在简化JavaScript中的数据绑定和动态内容渲染。它通过使用预定义的模板语法,允许开发者将HTML结构和数据逻辑分离,从而在不涉及复杂的DOM操作的情况下实现动态页面更新。...
2. **数据模型**:jTemplates的核心是数据模型,它是由JSON对象构成的,用于存储和传递要显示的数据。 3. **渲染机制**:jTemplates解析模板,将数据模型中的数据替换到HTML元素中,然后在浏览器中动态渲染出视图。...
**JTemplates 模板引擎详解** ...总之,JTemplates 提供了一个强大而简洁的机制,帮助开发者高效地处理客户端的数据显示和更新。通过学习和掌握JTemplates 的使用,可以显著提升Web应用的用户体验和开发效率。
3. **数据绑定**:JTemplates 可以直接与Java对象的数据成员进行绑定,简化了数据传递的过程。开发者可以轻松地将Java模型数据渲染到模板中。 4. **编译时检查**:JTemplates 在编译时对模板进行解析和验证,能尽早...
这款组件的出现,极大地简化了JavaScript中复杂的数据绑定和DOM操作,提高了前端开发效率。 **二、核心理念** jTemplates的核心理念是“数据驱动视图”。它通过定义一种简单的模板语言,使得HTML模板可以嵌入变量...
jTemplates是一套用作较广的基于jQuery开发的javascript模板引擎,用它可以配合ASP/PHP/JSP/等众多语言来完成诸如通过JavaScript获取JSON数据、获取一个HTML模板、构建客户端分页表格、与数据结合生成HTML静态页面的...
内容索引:脚本资源,jQuery,jTemplates jTemplates是一套用作较广的基于jQuery开发的javascript模板引擎,用它可以配合ASP/PHP/JSP/等众多语言来完成诸如通过JavaScript获取JSON数据、获取一个HTML模板、构建客户端...
在这个场景中,我们讨论的是如何在 ASP.NET MVC 中利用 jQuery 模板引擎 JTemplates 来呈现表格数据。jQuery 模板引擎如 JTemplates 提供了一种简便的方式来动态生成 HTML 内容,尤其是当需要处理复杂的数据结构时,...
`jTemplates`支持JSON数据格式,可以方便地与服务器端的数据接口进行对接。 3. **日期插件**: 在网页中显示和处理日期通常需要用到特定的插件,如`jQuery UI Datepicker`或`moment.js`。`jQuery UI Datepicker`...
jTemplate允许开发者使用简单的HTML模板语法来动态渲染数据,将数据绑定到页面元素上,实现数据驱动的视图更新。这在处理大量或复杂的数据展示时非常有用,特别是在AJAX应用中。 总的来说,这个压缩包包含了两个...
然而,理解如何与其他工具(如SpringBoot的`templates`和`static`目录、Angular的模板、Django的`templates`设置,以及jQuery的模板引擎JTemplates等)配合使用,也是构建高效Web应用的关键。熟悉这些相关知识,有助...