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,alert出现乱码问题的解决方法
Jun 19 Javascript
javascript动态添加样式(行内式/嵌入式/外链式等规则)
Jun 24 Javascript
ActiveX控件与Javascript之间的交互示例
Jun 04 Javascript
用JavaScript实现页面重定向功能的教程
Jun 04 Javascript
理解javascript中的原型和原型链
Jul 30 Javascript
jQuery实现折叠、展开的菜单组效果代码
Sep 16 Javascript
浅析JS异步加载进度条
May 05 Javascript
JS实现十字坐标跟随鼠标效果
Dec 25 Javascript
vue.js实现带日期星期的数字时钟功能示例
Aug 28 Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
Mar 04 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
Oct 19 Javascript
js实现鼠标切换图片(无定时器)
Jan 27 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
十天学会php(2)
2006/10/09 PHP
Blitz templates 最快的PHP模板引擎
2010/04/06 PHP
PHP COOKIE及时生效的方法介绍
2014/02/14 PHP
php使用fullcalendar日历插件详解
2019/03/06 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
Extjs EditorGridPanel中ComboBox列的显示问题
2011/07/04 Javascript
解析jquery中的ajax缓存问题
2013/12/19 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
Jquery 实现弹出层插件
2015/01/28 Javascript
JS实现的手机端精简幻灯片效果
2016/09/05 Javascript
jQuery层次选择器用法示例
2016/09/09 Javascript
jQuery Ajax实现跨域请求
2017/01/21 Javascript
layui-select动态选中值的例子
2019/09/23 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
python中迭代器(iterator)用法实例分析
2015/04/29 Python
Flask的图形化管理界面搭建框架Flask-Admin的使用教程
2016/06/13 Python
python对excel文档去重及求和的实例
2018/04/18 Python
详解Python 函数如何重载?
2019/04/23 Python
Jacobi迭代算法的Python实现详解
2019/06/29 Python
Django基础三之视图函数的使用方法
2019/07/18 Python
python原类、类的创建过程与方法详解
2019/07/19 Python
Django框架组成结构、基本概念与文件功能分析
2019/07/30 Python
python连接、操作mongodb数据库的方法实例详解
2019/09/11 Python
CSS3 实现倒计时效果
2020/11/25 HTML / CSS
移动web模拟客户端实现多方框输入密码效果【附代码】
2016/03/25 HTML / CSS
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
意大利拉斐尔时尚购物网:Raffaello Network(支持中文)
2018/11/09 全球购物
俄罗斯韩国化妆品网上商店:Cosmasi.ru
2019/10/31 全球购物
退税申请报告怎么写
2015/05/18 职场文书
公司的力量观后感
2015/06/05 职场文书
大学生社会实践感想
2015/08/11 职场文书
2015年幼儿园班主任个人工作总结
2015/10/22 职场文书
餐厅开业活动方案
2019/07/08 职场文书
浅谈pytorch中stack和cat的及to_tensor的坑
2021/05/20 Python
python超详细实现完整学生成绩管理系统
2022/03/17 Python
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python