Underscore.js 的模板功能介绍与应用

Underscore是一个非常实用的JavaScript库,提供许多编程时需要的功能的支持,他在不扩展任何JavaScript的原生对象的情况下提供很多实用的功能。
无论你写一段小的js代码,还是写一个大型的HTML5应用,underscore都能帮上忙。目前,underscore已经被广泛使用,例如,backbone.js唯一强依赖的库就是underscore.js。
今天主要讨论Underscore 的前端模板功能。它的模板功能和前一篇介绍的javascript前端模板是一样的。对数据的处理更加方便。写了个小例,供大家参考学习。

完整实例下载


代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Underscore</title>
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="format-detection" content="telephone=no"/>
<link href="index.css" rel="stylesheet" type="text/css" />
<script src="jquery.js"></script>
<script src="underscore.js"></script>
</head>
<body>
</body>
</html>
<!--ace-template demo-->
<script id="t2" type="text/template">
<%_.each(datas, function(item) {%>
<div class="outer">
<div class="title">
<span ><%=item.film%></span>
</div>
<ul class="ul">
<%_.each(datas, function(item) {%>
<li>
<a href="<%=item.url%>">【<%=item.title%>】</a>
</li>
<%});%>
</ul>
</div>
<%});%>
</script>
<!--数据 -->
<script>
var datas = [
{
title: "一九四二",
url: "http://www.jb51.net",
film:"电影1"
},
{
title: "少年派的漂流",
url: "http://www.jb51.net",
film:"电影2"
},
{
title: "教父",
url: "http://www.jb51.net",
film:"电影3"
},
{
title: "肖申克的救赎",
url: "http://www.jb51.net",
film:"电影4"
},
{
title: "3d2012",
url: "http://www.jb51.net",
film:"电影5"
}
];
$("body").html( _.template($("#t2").html(), datas));
</script>
<!--点击下拉事件-->
<script type="text/javascript">
$('.ul').hide();
$('.ul>li:last-child').addClass('last-li');
$('body>div:first-child>ul').show();
$('.title').click(function(){
$(this).siblings().toggle();
$(this).parent().siblings().children('.bbs-nav-ul').hide();
}) $('.title').hover(function(){
$(this).toggleClass('hover');
})
$('.ul>li').hover(function(){
$(this).toggleClass('hover');
})
</script

(0)

相关推荐

  • Underscore.js 1.3.3 中文注释翻译说明

    // Underscore.js 1.3.3 // (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc. // Underscore is freely distributable under the MIT license. // Portions of Underscore are inspired or borrowed from Prototype, // Oliver Steele's Functional, and John Resig'

  • underscore之Collections_动力节点Java学院整理

    underscore为集合类对象提供了一致的接口.集合类是指Array和Object,暂不支持Map和Set. map/filter 和Array的map()与filter()类似,但是underscore的map()和filter()可以作用于Object.当作用于Object时,传入的函数为function (value, key),第一个参数接收value,第二个参数接收key: 'use strict'; var obj = { name: 'bob', school: 'No.1 mi

  • 微信小程序使用第三方库Underscore.js步骤详解

    前言 Underscore.js是一个很精干的库,压缩后只有4KB.Underscore 提供了100多个函数,包括常用的:map.filter.invoke - 当然还有更多专业的辅助函数,如:函数绑定.JavaScript 模板功能.创建快速索引.强类型相等测试等等.弥补了标准库的不足,大大方便了JavaScript的编程. 微信小程序无法直接使用require( 'underscore.js' )进行调用. 微信小程序模块化机制 微信小程序运行环境支持CommoJS模块化,通过module

  • 深入解析Backbone.js框架的依赖库Underscore.js的作用

    backbone必须依赖underscore.js才能够使用,它必须通过underscore中的函数来完成访问页面元素.处理元素的基本操作. 注:backbone可以很好的与其它js库一起工作,所以说它是一个库,而不是框架. Underscore并没有对原生对象进行扩展,而是调用_()方法进行封装,一旦封装完成,js对象就变为Underscore对象,也可以通过Underscore对象的Value()方法获取原生js对象中的数据.(jquery通过$()方法得到Jquery对象) Undersc

  • Underscore源码分析

    几年前就有人说javascript是最被低估一种编程语言,自从nodejs出来后,全端(All Stack/Full Stack)概念日渐兴起,现在恐怕没人再敢低估它了.javascrip是一种类C的语言,有C语言基础就能大体理解javascript的代码,但是作为一种脚本语言,javascript的灵活性是C所远远不及的,这也会造成学习上的一些困难. 一.集合  1.首先是几个迭代的方法. _.each = _.forEach = function(obj, iteratee, context

  • Underscore之Array_动力节点Java学院整理

    underscore为Array提供了许多工具类方法,可以更方便快捷地操作Array. first / last 顾名思义,这两个函数分别取第一个和最后一个元素: 'use strict'; var arr = [2, 4, 6, 8]; _.first(arr); // 2 _.last(arr); // 8 flatten flatten()接收一个Array,无论这个Array里面嵌套了多少个Array,flatten()最后都把它们变成一个一维数组: 'use strict'; _.fl

  • underscore之Chaining_动力节点Java学院整理

    还记得jQuery支持链式调用吗? $('a').attr('target', '_blank') .append(' <i class="uk-icon-external-link"></i>') .click(function () {}); 如果我们有一组操作,用underscore提供的函数,写出来像这样: _.filter(_.map([1, 4, 9, 16, 25], Math.sqrt), x => x % 2 === 1); // [1,

  • underscore之function_动力节点Java学院整理

    因为underscore本来就是为了充分发挥JavaScript的函数式编程特性,所以也提供了大量JavaScript本身没有的高阶函数. bind bind()有什么用?我们先看一个常见的错误用法: 'use strict'; console.log('Hello, world!'); // 输出'Hello, world!' var log = console.log; log('Hello, world!'); // Uncaught TypeError: Illegal invocati

  • JavaScript之underscore_动力节点Java学院整理

    JavaScript是函数式编程语言,支持高阶函数和闭包.函数式编程非常强大,可以写出非常简洁的代码.例如Array的map()和filter()方法: 'use strict'; var a1 = [1, 4, 9, 16]; var a2 = a1.map(Math.sqrt); // [1, 2, 3, 4] var a3 = a2.filter((x) => { return x % 2 === 0; }); // [2, 4] 现在问题来了,Array有map()和filter()方法

  • Underscore.js 的模板功能介绍与应用

    Underscore是一个非常实用的JavaScript库,提供许多编程时需要的功能的支持,他在不扩展任何JavaScript的原生对象的情况下提供很多实用的功能. 无论你写一段小的js代码,还是写一个大型的HTML5应用,underscore都能帮上忙.目前,underscore已经被广泛使用,例如,backbone.js唯一强依赖的库就是underscore.js. 今天主要讨论Underscore 的前端模板功能.它的模板功能和前一篇介绍的javascript前端模板是一样的.对数据的处理

  • Javascript模块化编程(三)require.js的用法及功能介绍

    这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战. 我采用的是一个非常流行的库require.js.  一.为什么要用require.js? 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了.后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载.下面的网页代码,相信很多人都见过. 复制代码 代码如下: <script src="1.js"></script> &l

  • Vue.js项目模板搭建图文教程

    前言 从今年(2017年)年初起,我们团队开始引入「Vue.js」开发移动端的产品.作为团队的领头人,我的首要任务就是设计 整体的架构 .一个良好的架构必定是具备丰富的开发经验后才能搭建出来的.虽然我有多年的前端开发经验,但就「Vue.js」来说,仍然是个新手.所幸「Vue.js」有一个配套工具「Vue-CLI」,它提供了一些比较成熟的项目模板,很大程度上降低了上手的难度.然而,很多具体的问题还是要自己思考和解决的. 项目划分 我们公司的H5产品大部分是嵌套在手机客户端里面的页面.每个项目的功能

  • 如何利用vue.js实现拖放功能

    前言 添加拖放功能是使你的程序更加自然和友好的方法.尽管有一些提供拖放功能的库,但是了解它们在底层的工作原理是非常有意义的. 在本文中,我们将用内置的 HTML 拖放 API 来实现简单的拖放系统.像这样: 拖放API HTML拖放API 是一种内置方法,它包含几个事件和属性,但是可以归纳为以两种类型的元素为思路来进行处理. 可拖动元素:可以被拖动的元素 可放置元素:可以接受被拖动元素的元素 如果这样分析,将会使分析拖放事件变得更加容易. 拖放事件 API 中有八个拖放事件可以用在我们程序中.

  • 交互式可视化js库gojs使用介绍及技巧

    目录 1. gojs 简介 2. gojs 应用场景 3. 为什么选用 gojs: 4. gojs 上手指南 5. 小技巧(非常实用哦) 6. 实践:实现节点分组关系可视化交互图 最后 1. gojs 简介 gojs 是一个用于构建交互式可视化图的 js 库,使用可自定义的模板和布局构建复杂节点.链接和组,从而构建出简单到复杂的各类图,如流程图.脑图.组织图.甘特图等.而且提供了许多用于用户交互的高级功能,例如拖放.复制和粘贴.就地文本编辑...... gojs 是 Northwoods Sof

  • Underscore.js常用方法总结

    概述 Underscore.js是一个很精干的库,压缩后只有4KB.它提供了几十种函数式编程的方法,大大方便了Javascript的编程.MVC框架backbone.js就是基于这个库. 它定义了一个下划线(_)对象,函数库的所有方法都属于这个对象.这些方法大致上可以分成:集合(collection).数组(array).函数(function).对象(object)和工具(utility)五大类. 在node.js下安装 Underscore.js不仅可以用于浏览器环境,还可以用于node.j

  • XML与ASP简单结合实现HTML模板功能

    本文利用的是XML的DSO数据绑定功能来实现ASP代码和HTML代码的分离,从而实现快速更换HTML模板的功能,由于本人只是刚刚开始接触XML,有许多不太了解的,在这里仅仅是提出一点想法,如果本文有错漏的地方请大家指多. 目前快速更换模板功能基本上是处于replace替换模板中的特殊标签后再显示出来,这样加大了许多ASP的处理时间,而且模板文件过长的话,加载到内存里进行处理时也是对服务器内存的一种考验.而XML中提供了一种DSO数据绑定功能.可以将标识替换操作交付给客户端.由于为了简化HTML模

随机推荐