这里介绍一个基于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. linux性能调优概述

    - 什么是性能调优?(what) - 为什么需要性能调优?(why) - 什么时候需要性能调优?(when) - 什么地方需要性能调优?(where) - 什么人来进行性能调优?(who) - 怎么样 ...

  2. Apache和Nginx平滑重启

    之前修改了服务器配置都是简单粗暴的用restart重启apache/nginx,据说这样不好.需要平滑重启服务器,避免重启时打断用户行为.然后就根据官方文档了解了一下平滑重启的命令.本文根据Apach ...

  3. jquery插件--多行文本缩略

    1.webkit内核多行缩略样式 text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orie ...

  4. 关于在repeater中的checkbox实行多选和全选

    今天项目中用到这一块,是一个b2b商城,业务是别人给客户留言后,客户从会员中心的留言管理中查看,用checkbox实行多选和全选后进行批量审核 首先在checkbox后加个hidden,作用见代码: ...

  5. parent.location.href和location.href区别

    parent.location.href='ind.php'parent用于框架结构,需要全网页转向如果你的网页是左右框架,那么,直接把当前页面全部转到ind.php中 location.href=' ...

  6. js设置元素的onclick传参方法

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD ...

  7. Memcached 深度分析

    Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库 负载,提升性能.关于这个东西,相信很多人都用过,本文意在通过 ...

  8. [php基础]PHP Form表单验证:PHP form validator使用说明

    在PHP网站开发建设中,用户注册.留言是必不可少的功能,用户提交的信息数据都是通过Form表单提交,为了保证数据的完整性.安全性,PHP Form表单验证是过滤数据的首要环节,PHP对表单提交数据的验 ...

  9. zepto源码研究 - zepto.js (zepto.init)

    简要:当我们用$()时,便会直接调用zepto.init 生成zepto对象,那zepto.init是如何根据不同类型的参数来生产指定对象呢? zepto.init = function(select ...

  10. JDBC使用sql语句

    JDBC---连接数据库 java与数据库连接需要驱动,这个驱动则是JDBC,连接的时候需要ip+端口号+dbname 还要用户名和密码 改java文件的编码方式--在项目名点右键属性----把编码方 ...