JavaScript模板引擎用法实例


Posted in Javascript onJuly 10, 2015

本文实例讲述了JavaScript模板引擎用法。分享给大家供大家参考。具体如下:

这里介绍的这个模板引擎写得短小精悍,非常值得一看

tmpl.js文件如下:

// Simple JavaScript Templating
// John Resig - http://ejohn.org/ - MIT Licensed
(function() {
 var cache = {};
 this.tmpl = function tmpl(str, data) {
  // Figure out if we're getting a template, or if we need to
  // load the template - and be sure to cache the result.
  var fn = 
   !/\W/.test(str) 
   ? 
   cache[str] = cache[str] || tmpl(document.getElementById(str).innerHTML) 
   :
   // Generate a reusable function that will serve as a template
   // generator (and which will be cached).
   new Function(
    "obj", "var p=[],print=function(){p.push.apply(p,arguments);};" +
    // Introduce the data as local variables using with(){}
    "with(obj){p.push('" +
    // Convert the template into pure JavaScript
    str
     .replace(/[\r\t\n]/g, " ")
     .split("<%").join("\t")
     .replace(/((^|%>)[^\t]*)'/g, "$1\r")
     .replace(/\t=(.*?)%>/g, "',$1,'")
     .split("\t")
     .join("');")
     .split("%>")
     .join("p.push('")
     .split("\r")
     .join("\\'") + 
    "');}return p.join('');"
   ); // Function ends
  // Provide some basic currying to the user
  return data ? fn(data) : fn;
 };
})();

index.html文件如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>JavaScript tmpl Use Demo</title>
  <script type="text/javascript" src="js/jquery.min.js"></script>
  <script src="./tmpl.js" type="text/javascript"></script>
   <!-- 下面是模板user_tmpl -->
  <script type="text/html" id="user_tmpl">
   <% for ( var i = 0; i < users.length; i++ ) { %>
   <li><a href="<%=users[i].url%>"><%=users[i].name%></a></li>
   <% } %>
  </script>
  <script type="text/javascript">
  // 用来填充模板的数据
   var users = [
    { url: "http://baidu.com", name: "jxq"},
    { url: "http://google.com", name: "william"}
   ];
   $(function() {
   // 调用模板引擎函数将数据填充到模板获得最终内容
    $("#myUl").html(tmpl("user_tmpl", users));
   });
  </script>
 </head>
 <body>
  <div>
   <ul id="myUl">
   </ul>
  </div>
 </body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
jQuery 渐变下拉菜单
Dec 15 Javascript
JavaScript 学习笔记(十三)Dom创建表格
Jan 21 Javascript
基于jQuery选择器的整理集合
Apr 26 Javascript
jquery与prototype框架的详细对比
Nov 21 Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
May 27 Javascript
vue开发心得和技巧分享
Oct 27 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
Jul 18 jQuery
微信小程序实现顶部普通选项卡效果(非swiper)
Jun 19 Javascript
详细介绍RxJS在Angular中的应用
Sep 23 Javascript
JS使用数组实现的队列功能示例
Mar 04 Javascript
vue实现公告栏文字上下滚动效果的示例代码
Jun 16 Javascript
Vue路由 重定向和别名的区别说明
Sep 09 Javascript
JavaScript实现打字效果的方法
Jul 10 #Javascript
javascript实现rgb颜色转换成16进制格式
Jul 10 #Javascript
再谈JavaScript线程
Jul 10 #Javascript
javascript实现判断鼠标的状态
Jul 10 #Javascript
javascript检查浏览器是否已经启用XX功能
Jul 10 #Javascript
javascript实现确定和取消提示框效果
Jul 10 #Javascript
javascript实现的简单的表单验证
Jul 10 #Javascript
You might like
使用php4加速网络传输
2006/10/09 PHP
php使用Jpgraph创建3D饼形图效果示例
2017/02/15 PHP
PHP计算近1年的所有月份
2017/03/13 PHP
基于jquery的一个OutlookBar类,动态创建导航条
2010/11/19 Javascript
jquery实现奇偶行赋值不同css值
2012/02/17 Javascript
jquery mobile changepage的三种传参方法介绍
2013/09/13 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
2016/03/01 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
js实时获取窗口大小变化的实例代码
2016/11/18 Javascript
基于JavaScript实现一个简单的Vue
2018/09/26 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
2019/03/27 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
js+html实现点名系统功能
2019/11/05 Javascript
[48:35]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 TNC vs Optic
2018/04/03 DOTA
python实现模拟按键,自动翻页看u17漫画
2015/03/17 Python
介绍Python中几个常用的类方法
2015/04/08 Python
Using Django with GAE Python 后台抓取多个网站的页面全文
2016/02/17 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
Python入门之三角函数atan2()函数详解
2017/11/08 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
2018/08/03 Python
详解python读取和输出到txt
2019/03/29 Python
Python实现队列的方法示例小结【数组,链表】
2020/02/22 Python
python和php哪个容易学
2020/06/19 Python
CSS3实现缺角矩形,折角矩形以及缺角边框
2019/12/20 HTML / CSS
MAC彩妆英国官网:M·A·C UK
2018/05/30 全球购物
建筑专业自我鉴定
2013/10/22 职场文书
商务助理求职信范文
2014/04/20 职场文书
鉴定评语大全
2014/05/05 职场文书
2015年乡镇流动人口工作总结
2015/05/12 职场文书
《钢铁是怎样炼成的》高中读后感
2019/08/07 职场文书
导游词之广西漓江
2019/11/02 职场文书
Redis Cluster集群动态扩容的实现
2021/07/15 Redis
SQLServer之常用函数总结详解
2021/08/30 SQL Server
基于docker安装zabbix的详细教程
2022/06/05 Servers