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 相关文章推荐
js操作table示例(个人心得)
Nov 29 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
Dec 29 Javascript
jQuery内置的AJAX功能和JSON的使用实例
Jul 27 Javascript
jQuery中:checked选择器用法实例
Jan 04 Javascript
浅谈JavaScript中Date(日期对象),Math对象
Feb 05 Javascript
jQuery实现鼠标经过像翻页和描点链接效果
Aug 08 Javascript
Vue.js组件使用开发实例教程
Nov 01 Javascript
百度多文件异步上传控件webuploader基本用法解析
Nov 07 Javascript
微信小程序 页面跳转如何实现传值
Apr 05 Javascript
JS实现获取自定义属性data值的方法示例
Dec 19 Javascript
微信小程序全选多选效果实现代码解析
Jan 21 Javascript
vue动态绑定style样式
Apr 20 Vue.js
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
sphinx增量索引的一个问题
2011/06/14 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
php pdo oracle中文乱码的快速解决方法
2016/05/16 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
2016/11/20 PHP
详解php实现页面静态化原理
2017/06/21 PHP
Laravel 实现添加多语言提示信息
2019/10/25 PHP
javascript动态加载三
2012/08/22 Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
2013/12/13 Javascript
js 获取时间间隔实现代码
2014/05/12 Javascript
js 获取今天以及过去日期
2017/04/11 Javascript
JS通过调用微信API实现微信支付功能的方法示例
2017/06/29 Javascript
基于wordpress的ajax写法详解
2018/01/02 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
[01:04:31]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第二场 1月8日
2021/03/11 DOTA
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
在django中图片上传的格式校验及大小方法
2019/07/28 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
性能服装:HYLETE
2018/08/14 全球购物
美国汽车零部件和配件网站:CarParts
2019/03/13 全球购物
美国专业消费电子及摄影器材网站:B&H Photo Video
2019/12/18 全球购物
毕业生在校学习的自我评价分享
2013/10/08 职场文书
幼儿教师考核制度
2014/01/25 职场文书
项目建议书格式
2014/03/12 职场文书
经典演讲稿汇总
2014/05/19 职场文书
迎新晚会策划方案
2014/06/13 职场文书
大学生简历自我评价2015
2015/03/03 职场文书
2015年安全生产月活动总结
2015/03/26 职场文书
道歉情书大全
2015/05/12 职场文书
销售人员管理制度
2015/08/06 职场文书
文明礼貌主题班会
2015/08/14 职场文书
适合毕业生创业的项目怎么找?
2019/08/08 职场文书