这里介绍一个基于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。 

二 , 快速上手

先来看一个简单的例子:

<script type="text/javascript" src="jquery-1.2.6.pack.js"></script>  

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

<script type="text/javascript">  

   $(document).ready(function() {  

    //初始化数据  

    var data = {  

     name: '用户列表',  

     list_id: '编号89757',  

     table: [  

      {id: 1, name: 'Rain', age: 22, mail: 'cssrain@domain.com'},  

      {id: 2, name: '皮特', age: 24, mail: 'cssrain@domain.com'},  

      {id: 3, name: '卡卡', age: 20, mail: 'cssrain@domain.com'},  

      {id: 4, name: '戏戏', age: 26, mail: 'cssrain@domain.com'},  

      {id: 5, name: '一揪', age: 25, mail: 'cssrain@domain.com'}  

     ]  

    };  

    // 附上模板  

    $("#result1").setTemplateElement("template");  

    // 给模板加载数据  

    $("#result1").processTemplate(data);  

   });   

</script>  

<!-- 模板内容 -->  

<textarea id="template" style="display:none">  

   <strong>{$T.name} : {$T.list_id}</strong>  

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

</textarea>  

<!-- 输出元素 -->  

<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,放入以下代码:

<strong>{$T.name} : {$T.list_id}</strong>  

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

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

{  

name: "用户列表",  

list_id: "编号89757",  

    table: [  

     {id: 1, name: 'Rain', age: 22, mail: 'cssrain@domain.com'},  

     {id: 2, name: '皮特', age: 24, mail: 'cssrain@domain.com'},  

     {id: 3, name: '卡卡', age: 20, mail: 'cssrain@domain.com'},  

     {id: 4, name: '戏戏', age: 26, mail: 'cssrain@domain.com'},  

     {id: 5, name: '一揪', age: 25, mail: 'cssrain@domain.com'}  

]  

}  

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

<script type="text/javascript">  

$(function(){  

$.ajax({  

   type:"post",  

   dataType:"json",  

   url:"cs.json",  

   success: function(data){  

                    .....  

  }  

});  

});  

</script>  

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

success: function(data){  

//设置模板  

$("#result1").setTemplateURL("template.html?date="+(+new Date()), null, {filter_data: true});  

//加载数据  

$("#result1").processTemplate(data);  

 }  

}  

jTemplates——学习(1)的更多相关文章

  1. jTemplates模板学习笔记

    1.jTemplates工作方式   1)setTemplateElement:指定可处理的模板对象 2)processTemplate:对模板化的对象进行数据处理 2.语法解析   1)jTempl ...

  2. 2016年学习JavaScript是怎样的一种体验(转)

    转自:http://www.zcfy.cc/article/how-it-feels-to-learn-javascript-in-2016-hacker-noon-1871.html 在这篇文章的写 ...

  3. 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代

    2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...

  4. Angular2学习笔记(1)

    Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...

  5. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  6. 消息队列——RabbitMQ学习笔记

    消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...

  7. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  8. Unity3d学习 制作地形

    这周学习了如何在unity中制作地形,就是在一个Terrain的对象上盖几座小山,在山底种几棵树,那就讲一下如何完成上述内容. 1.在新键得项目的游戏的Hierarchy目录中新键一个Terrain对 ...

  9. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

随机推荐

  1. Java利用Rxtx进行串口通讯

    最近在做传感器数据采集的工作,底层是基于Zigbee的无线传感网络,所有数据采集到Zigbee协调器上然后通知上位机数据采集完成,上位机通过USB转串口去读取数据就可以了.那么问题来了,如何进行串口通 ...

  2. nginx 1.安装

    nginx 1.安装 nginx的众多优点这里就不多说了,直接开始吧. 基本依赖 yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel ...

  3. 使用三层交换机的ACL实现不同vlan间的隔离

    使用三层交换机的ACL实现不同vlan间的隔离   建立三个vlan vlan10 vlan20 vlan30    www.2cto.com   PC1 PC3属于vlan10 PC2 PC4属于v ...

  4. 25 读取jar包内log4j.properties文件方法

    //读取log4j日志配置文件 InputStream inputStream=ApplicationExecutor.class.getResourceAsStream("/log4j_h ...

  5. 查找Mysql数据库连接jar包和对应的Driver和Url

    以前写jdbc连接向来都是直接copy,对于连接数据库的jar包在哪下载,对应的Driver类是哪一个,数据库连接串怎么找等等都没有做过,今天从零开始整了一遍. 使用的数据库是Mysql 一.已安装了 ...

  6. 配置mysql允许远程连接

    开启MySQL数据库的远程连接权限: use mysql://进入数据库 grant all privileges on *.* to root@'%'identified by '123465789 ...

  7. oracle双机热备概念

    1. 双机热备概述      双机热备有两种实现模式,一种是基于共享的存储设备的方式,另一种是没有共享的存储设备的方式,一般称为纯软件方式.      基于存储共享的双机热备是双机热备的最标准方案. ...

  8. jQuery 分割按钮(Split Button)

    代码写多了,有些使用过的方法和技巧会一时半会想不起来,平日记录下来,方便自己和有需要的人日后查阅. <html> <head> <style type="tex ...

  9. AJAX快速上手

    创建XMLHttpRequest对象 xmlHttp = new XMLHttpRequest(); xmlHttp = new ActiveXObject('Microsoft.XMLHTTP'); ...

  10. Hibernate数据库对象的创建与导出

    Hibernate 与数据库的关系是ORM关系,对象映射数据库. 那么如何通过对象对数据库进行各种对象的ddl与dml操作呢? 数据库对象操作的〈database-object /〉+ SchemaE ...