官网http://underscorejs.org/中介绍:
你可能用到 Prototype.js中提供的一些扩展,而underscore也是这样的javascript扩展的一个工具库,不同的是underscore扩展的不是js固有对象(Array, Date, String...),使用最多的地方就是和backbone(一种前台javascript版的mvc)协作使用。
这里只是简单介绍下underscore的模版使用方法,有好人已经对underscore进行了中文详细的注释,可到链接http://www.iteye.com/topic/1127861处查看下载。
代码中,有个正则配置
_.templateSettings = {
evaluate : /<%([\s\S]+?)%>/g,
interpolate : /<%=([\s\S]+?)%>/g,
escape : /<%-([\s\S]+?)%>/g
};
跟jsp中嵌入java代码有点像,evaluate标签中间的表示为可执行的js代码,interpolate表示输出一个js运行结果的值,escapte表示输出这个变量的值并且进行html标签过滤,将相关的字符如"<"转为"<",比如
evaluate:如果xxx为true则输出字符串<div>xxx</div>
<%if(xxx){%> <div>xxx</div> <%}%>
interpolate: 输出表达式结果,如果gender为0则返回字符串为<div>女</div>
<div>性别:<%= gender == 0 ? "女" : "男"%></div>
escape: 就是输出这个变量值,如果gender为0则返回字符串为<div>0</div>
<div>性别:<%- gender%></div>
默认的标签使用过程中,可能会造成不便比如jsp中这样的字符串会与java代码冲突,这样我们只修改覆盖默认配置就行,下面就是将"<%%>"替换为“{}”
/** * underscore template settings */ _.templateSettings = { evaluate : /{([\s\S]+?)}/g, interpolate : /{=([\s\S]+?)}/g, escape : /{-([\s\S]+?)}/g };
几个例子:
var tml = "<div class=\"dialog\" role=\"dialog\" {if(id){} id=\"{-id}\"{}}>" + "<div class=\"header\">" + "<span class=\"caption\">{-caption}</span>" + "{if(closable){}" + "<div class=\"button close\"><img src=\"images/close.gif\"/></div>" + "{}}</div>" + "<div class=\"content\"></div>" + "</div>"; tmp = _.template(tml, { id: "dialog1", caption: "title", closable: false} );
输出字符串为:<div class="dialog" role="dialog" id="dialog1"><div class="header"><span class="caption">title</span></div><div class="content"></div></div>
当然也可以使用underscore提供的forEach:
var tml = "<ul id={-id}>" + "{_.forEach(data, function(item, i){}"+ "<li>{-i}:{-item.name}</li>"+ "{})}"+ "</ul>"; tmp = _.template(tml, { id:"students", data:[ {name: "lily", gender: 0}, {name: "lilei", gender: 1}, {name: "jim", genger: 1} ] });
输出字符串结果为:<ul id=students><li>0:lily</li><li>1:lilei</li><li>2:jim</li></ul>
如果只是单纯想使用他的模版,可以把相关代码提出来http://blog.sina.com.cn/s/blog_842a3c1b0101etsn.html
相关推荐
下划线在Express中轻松使用Underscore模板。安装这个软件包在npm中注册为underscore-express ,所以很简单... npm install underscore-express ...会做的。用法在您的Express应用设置中... // To use the default '...
2. **模板引擎**:underscore的`_.template()`功能可以实现动态HTML模板,结合JavaScript表达式,轻松生成复杂页面结构。 3. **函数封装和优化**:通过`_.throttle()`和`_.debounce()`,可以优化事件监听器,避免...
《深入理解JavaScript库:underscore-1.6.0》 underscore.js是一款轻量级的JavaScript实用库,它为JavaScript开发提供了大量的实用函数,极大地增强了原生JavaScript对象的处理能力。在"underscore-1.6.0.zip"这个...
- 随着现代浏览器对一些函数(如`forEach`、`map`、`reduce`、`filter`、`every`、`some`、`indexOf`)的原生支持,Underscore会优先使用这些原生函数,以提高性能。 - 为了优化性能,Underscore还提供了压缩版,...
_.template()是Underscore.js的一个特色,它允许开发者使用内联表达式和控制流语句来创建动态模板,简化HTML的生成。 七、源码解析 Underscore.js的源码清晰易读,通过研究源码,我们可以了解到JavaScript的一些...
在实际开发中,Underscore.js常被用来处理数据、辅助模板渲染、实现复杂的逻辑控制等。例如,我们可以使用`_.each`遍历JSON数据,结合`_.filter`和`_.map`进行数据过滤和转换,再用`_.reduce`进行聚合计算。对于异步...
Underscore.js 是一个强大的JavaScript库,它在不污染JavaScript原生对象的基础上提供了大量实用的函数,涵盖了数组、对象、...无论是小型项目还是大型应用,掌握Underscore.js的模板使用都是提高生产力的重要技能。
用于Webpack的Underscore.js模板加载器,可在严格模式下使用。 下划线模板默认情况下不使用严格模式,因为它们使用with(data)函数使您可以访问数据变量。 此插件的工作方式是在模板中的每个变量前面加上data....
6. **模板引擎**:Underscore还包括一个简单的模板引擎,允许使用JavaScript语法在字符串中插入变量和表达式,如`_.template()`函数,这对于动态生成HTML或JSON数据非常有用。 在实际开发中,Underscore.js常与...
koa下划线模板 使用Koa渲染模板。 适用于Koa 2.x或更高版本。入门将此软件包添加为您的应用程序的中间件: const views = require ( 'koa-underscore-templates' ) ;app . use ( views ( __dirname + '/views' , { /...
在视图渲染时,也可能使用 Underscore 模板引擎来动态生成 HTML。 在实际项目中,你可以根据需求选择性地利用这两个库的功能,创建出结构清晰、可维护性高的前端应用。对于初学者来说,了解和掌握这两个库的使用...
Backbone.js 和 Underscore.js 是两个在JavaScript开发中广泛使用的库,它们为构建复杂的Web应用程序提供了强大的工具。这两个库都是基于jQuery库,其中jQuery-1.10.2.js是jQuery的一个版本,它为DOM操作、事件处理...
用于Webpack的Underscore.js和Lodash模板加载器 变更日志 * 1.1:通过`query`支持宏(thx @ JimYan,@ devlinjunker)* 1.0:Loader现在可与Webpack 4一起使用。 安装 npm install underscore-template-loader ...
underscore.js 的模板引擎很小但很容易使用。 如果你不想使用整个 underscore.js 库但需要一个小巧、优雅的模板引擎,请考虑这个项目。 如何使用 下载库 包括图书馆 < script type =" application/javascript " ...
### Underscore.js API 文档概述 #### 一、引言 Underscore.js 是一个功能强大的 JavaScript 工具库,它提供了大量的函数式编程支持,...无论是初学者还是经验丰富的开发者,都可以从 Underscore 的使用中获益良多。
此项目主要使用 `Express.js` 作为后端框架,`Underscore.js` 用于模板引擎,提供动态渲染页面的能力。 **Express.js**: `Express.js` 是一个基于 `Node.js` 平台的极简、灵活的 web 应用程序开发框架,它为构建 ...
Underscore提供了80多个函数,包括常用的: map, select, invoke — 当然还有更多专业的辅助函数,如:函数绑定, JavaScript模板功能, 强类型相等测试, 等等. 在新的浏览器中, 有许多函数如果浏览器本身直接支持,将会...
1. **字符串格式化**:在JavaScript中,我们可以使用模板字符串或者_.template方法来实现简单的字符串格式化,但underscore.string提供了一个更为强大的`fmt`方法,允许我们像C语言的printf一样进行复杂的格式化操作...