这里介绍一个基于jQuery开发的模板引擎。
jTemplates目前最新的版本是0.7.8,由tPython开发。官方网站:http://jtemplates.tpython.com

两个附件,一个是jTemplates官方网站提供的下载包,其中包括jTemplates的说明、jTemplates JS库、jTemplates DOC。
          另一个是使用jTemplates做的三个DEMO。

一 , 简单介绍

它是一个基于jQuery开发的javascript模板引擎。它主要的作用如下:

1. 通过JavaScript获取JSON形式的数据;

2. 获取一个HTML模板,与数据相结合,生成页面HTML。

二 , 快速上手

先来看一个简单的例子:

Js代码  
  1. <script type="text/javascript" src="jquery-1.2.6.pack.js"></script>
  2. <script type="text/javascript" src="jquery-jtemplates.js"></script>
  3. <script type="text/javascript">
  4. $(document).ready(function() {
  5. //初始化数据
  6. var data = {
  7. name: '用户列表',
  8. list_id: '编号89757',
  9. table: [
  10. {id: 1, name: 'Rain', age: 22, mail: 'cssrain@domain.com'},
  11. {id: 2, name: '皮特', age: 24, mail: 'cssrain@domain.com'},
  12. {id: 3, name: '卡卡', age: 20, mail: 'cssrain@domain.com'},
  13. {id: 4, name: '戏戏', age: 26, mail: 'cssrain@domain.com'},
  14. {id: 5, name: '一揪', age: 25, mail: 'cssrain@domain.com'}
  15. ]
  16. };
  17. // 附上模板
  18. $("#result1").setTemplateElement("template");
  19. // 给模板加载数据
  20. $("#result1").processTemplate(data);
  21. });
  22. </script>
  23. <!-- 模板内容 -->
  24. <textarea id="template" style="display:none">
  25. <strong>{$T.name} : {$T.list_id}</strong>
  26. <table>
  27. <tr>
  28. <th>编号</th>
  29. <th>姓名</th>
  30. <th>年龄</th>
  31. <th>邮箱</th>
  32. </tr>
  33. {#foreach $T.table as record}
  34. <tr>
  35. <td>{$T.record.id}</td>
  36. <td>{$T.record.name}</td>
  37. <td>{$T.record.age}</td>
  38. <td>{$T.record.mail}</td>
  39. </tr>
  40. {#/for}
  41. </table>
  42. </textarea>
  43. <!-- 输出元素 -->
  44. <div id="result1" ></div>

上面代码中,先导入了jQuery.js,然后导入jtemplates.js。

接下来新建了一个data数据的json对象。

var data = {
     ......
};

然后在HTMl页面上增加一个 输出元素 和 一个模板元素:

最后在JS给输出元素 附加模板 和 数据。

这样,运行代码后,出现如下图所示界面。

用户列表 : 编号89757
编号   姓名  年龄  邮箱
1        Rain   22    cssrain@domain.com
2        皮特   24   cssrain@domain.com
3       卡卡   20    cssrain@domain.com
4       戏戏   26    cssrain@domain.com
5       一揪   25    cssrain@domain.com

三 , 加载模板

这次把模板放到一个单独的页面中,而不是直接写在页面里。

新建一个template.html,放入以下代码:

Js代码  
  1. <strong>{$T.name} : {$T.list_id}</strong>
  2. <table>
  3. <tr>
  4. <th>编号</th>
  5. <th>姓名</th>
  6. <th>年龄</th>
  7. <th>邮箱</th>
  8. </tr>
  9. {#foreach $T.table as record}
  10. <tr>
  11. <td>{$T.record.id}</td>
  12. <td>{$T.record.name}</td>
  13. <td>{$T.record.age}</td>
  14. <td>{$T.record.mail}</td>
  15. </tr>
  16. {#/for}
  17. </table>

然后新建一个json文件,名称为cs.json,代码如下:

Js代码  
  1. {
  2. name: "用户列表",
  3. list_id: "编号89757",
  4. table: [
  5. {id: 1, name: 'Rain', age: 22, mail: 'cssrain@domain.com'},
  6. {id: 2, name: '皮特', age: 24, mail: 'cssrain@domain.com'},
  7. {id: 3, name: '卡卡', age: 20, mail: 'cssrain@domain.com'},
  8. {id: 4, name: '戏戏', age: 26, mail: 'cssrain@domain.com'},
  9. {id: 5, name: '一揪', age: 25, mail: 'cssrain@domain.com'}
  10. ]
  11. }

在jQuery中,可以通过$.ajax()方法来加载 json文件,代码如下:

Js代码  
  1. <script type="text/javascript">
  2. $(function(){
  3. $.ajax({
  4. type:       "post",
  5. dataType:   "json",
  6. url:        "cs.json",
  7. success:    function(data){
  8. .....
  9. }
  10. });
  11. });
  12. </script>

在success回调函数里,首先需要设置模板,然后需要添加数据。如下代码所示:

Js代码  
  1. success:    function(data){
  2. // 设置模板
  3. $("#result1").setTemplateURL("template.html?date="+(+new Date()), null, {filter_data: true});
  4. //   加载数据
  5. $("#result1").processTemplate(data);
  6. }
  7. }

完整代码如下所示:

Js代码  
  1. $(function(){
  2. $.ajax({
  3. type:       "post",
  4. dataType:   "json",
  5. url:        "cs.json",
  6. success:    function(data){
  7. $("#result1").setTemplateURL("template.html?date="+(+new Date()), null, {filter_data: true});
  8. $("#result1").processTemplate(data);
  9. }
  10. });
  11. });

转载于:https://www.cnblogs.com/firstdream/archive/2012/03/21/2410264.html

基于jQuery开发的javascript模板引擎-jTemplates相关推荐

  1. 【JavsScript】推荐五款流行的JavaScript模板引擎

    摘要:Javascript模板引擎作为数据与界面分离工作中最重要一环,受到开发者广泛关注.本文通过开发实例解析五款流行模板引擎:Mustache.Underscore Templates.Embedd ...

  2. 高性能JavaScript模板引擎原理解析

    来源:http://cdc.tencent.com/?p=5723 随着 web 发展,前端应用变得越来越复杂,基于后端的 javascript(Node.js) 也开始崭露头角,此时 javascr ...

  3. 13 款 JavaScript 模板引擎

    JavaScript 在生成各种页面内容时如果能结合一些模板技术,可以让逻辑和数据之间更加清晰,本文介绍 X 款 JavaScript 的模板引擎.(排名不分先后顺序) 1. Mustache 基于j ...

  4. if laytpl 非_laytpl : 一款非常轻量的JavaScript模板引擎

    //假设你得到了这么一段数据 var data = { title: '前端圈', intro: '一群码js的骚年,幻想改变世界,却被世界改变.', list: [{name: '贤心', city ...

  5. JavaScript模板引擎详解

    JavaScript模板引擎是一种用于生成HTML.XML和其他文本格式的工具,它将特定的模板语法转换为相应的文本输出,通常用于前端开发中动态生成页面内容.下面是一个JavaScript模板引擎的详细 ...

  6. 前端模板引擎artTemplate---高性能JavaScript模板引擎

    关于artTemplate模板引擎的详细原理请移步高性能JavaScript模板引擎原理解析,本文只探讨如何使用.初学前端的人一般对于绑定数据都是使用原生js或者jquery来拼接字符串,此为hard ...

  7. JavaScript模板引擎Template.js基本使用详解

    template.js是一款JavaScript模板引擎,提供一套模板语法,简单好用,开发者可以写一个模板区块,每次传入的数据,生成对应数据产生的HTML片段,渲染不同的效果.官网:简洁语法版 htt ...

  8. 前端javaScript模板引擎之ArtTemplate

    一.简介 ArtTemplate是腾讯开发的一款使用方便.性能卓越javascript模板引擎,其渲染效率极其快.ArtTemplate的库分为两种,一个是template.js,这个是简单的语法版本 ...

  9. Javascript模板引擎mustache.js详解

    进阶之路在于日积月累, 每天进步一点点-加油~ mustache.js是一个简单强大的Javascript模板引擎,使用它可以简化在js代码中的html编写,压缩后只有9KB,非常值得在项目中使用. ...

最新文章

  1. python中setup什么意思_Python unittest中setUp()和setUpClass()有什么区别?
  2. 第三话 开关说它不认识“2”
  3. 065_const关键字
  4. 深入理解分布式技术 - 分布式缓存总结回顾
  5. 【C语言】x++与++x
  6. 还有什么不能做?——细谈在C#中读写Excel系列文章之一
  7. 受宠的背后:安全市场面临重新洗牌
  8. CAD/DWG图纸在线浏览/查看/预览/解析插件/SDK
  9. 安卓音量设置流程之MasterVolume
  10. 隐函数存在定理隐函数的高阶导数
  11. SPADE(GauGAN)代码运行方法
  12. python数据对比校验_Python对比数据库两张表是否一致
  13. java如何快速标记条_【JAVA】如何利用TODO任务标签高效管理代办代码
  14. 十几年稳坐“大哥”位,搞Java的程序员就是这么“牛x”!
  15. eclipse的安装与下载
  16. flink-cdc 同步mysql数据到ES时间格式问题。
  17. spring利用Druid实现sql监控界面
  18. jieba分词库、WordCloud词云库、requests库
  19. 华擎主板的instant flash功能问题
  20. 详解:熊掌号每一篇闪光的原创,都值得保护!

热门文章

  1. 三周一套报表开发系统,原来Excel的顶级替代品是它
  2. 年终将至,手把手教你做一份亮眼的年终总结报告
  3. 大数据分析工具鄙视链:Python成老大,Excel小弟都称不上?
  4. 酷炫可视化+强于excel的结合体!超高效的表格工具,不用可惜
  5. 你可以不懂数据分析,但请一定收藏这个神器!
  6. 样式中指定调用的效果
  7. testflight测试软件怎么,TestFlight使用步骤
  8. ctf题目:看不见的flag_记一次江西省信息安全线下CTF比赛
  9. halcon边缘提取颜色相近_初学者福利!三种用Python从图像数据中提取特征的技术...
  10. python下载包没用_Python下载各种功能包出问题