学习在requirejs下如何使用underscore.js模板
近期在学习underscore.js 这个小而美的js库,是前端 MVC 框架backbone依赖库,他的模板方法主要应用场景是ajax交互过程到页面需要大量的字符串拼接,这部分如果一旦不够仔细就很容易拼错,而underscore.js的模板很好的解决了这个问题。自己做了个小小的练习,在requirejs下如何使用underscore.js模板。
首页un.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>underscore.js</title>
</head>
<body>
<div id="wraper">111</div>
<script data-main="js/un" src="require.js"></script> <!-- data-main 指定的入口函数 -->
<script type="text/javascript">
require.config({
baseUrl:'js',//指定目录
paths:{
jquery:'static/jquery-1.10.2.min',//指定jquery位置
underscore:'static/underscore' //指定underscore位置
},
urlArgs: "bust=" + (new Date()).getTime() //时间戳,清缓存的
})
</script>
<script type="text/template" id="tpl"><!-- underscore.js id是钩子 注意是text/template -->
<%_.each(obj,function(item){%>
<ul>
<li>
<a href="<%=item.url%>">
<%=item.name %>
</a>
<span><%=item.time%></span>
<%if(item.sub !== ''){%>
<%_.each(item.sub,function(k){%>
<b><a data-id=<%=k.id%> href="javascript:;" class="b"><%=k.name%></a></b>
<%})%>
<%}else{%> <%}%>
</li>
</ul>
<%})%>
</script>
</body>
</html>
我将requirejs 放到了 与 un.html平行的目录 具体到项目中 可能就不能这样放了。
下面是un.js
require(['jquery','underscore','cache'],function($,U,C){ //指定了依赖jq,underscore ,cache
C.putCode(); //应用cache.js的东西 练习用的 没有实际意义。
var data = [
{id:11,name:'aaa',age:31,url:'http://www.baidu.com',time:'12345',sub:[{id:'9999',name:'删除'},{id:8888,name:'删除'},{id:7777,name:'删除'}]},
{id:23,name:'bbb',age:66,url:'http://www.qiban365.com',time:'021545'},
{id:24,name:'ccc',age:99,url:'http://www.cnblogs.com',time:'45456456456'}
]; var text = _.template($('#tpl').html()); $("#wraper").html(text(data)); //$("#wraper").html(_.template($("#tpl").html(),data));//这个不好使 $(document).on('click','.b',function(){ //冒泡点击事件
console.log($(this).attr('data-id'));
if($(this).length !== ''){
$(this).remove();
}
}) })
学习在requirejs下如何使用underscore.js模板的更多相关文章
- knockout.js模板绑定之利用Underscore.js模板引擎示例
View代码 <h1>People</h1> <ul data-bind="template: { name: 'peopleList' }"> ...
- Underscore.js 源码学习笔记(上)
版本 Underscore.js 1.9.1 一共 1693 行.注释我就删了,太长了… 整体是一个 (function() {...}()); 这样的东西,我们应该知道这是一个 IIFE(立即执行 ...
- Underscore.js 初探
一. 简介 Underscore 这个单词的意思是“下划线”. Underscore.js 是一个 JavaScript 工具库,提供了一整套的辅助方法供你使用. Think that - ...
- Underscore.js 源码学习笔记(下)
上接 Underscore.js 源码学习笔记(上) === 756 行开始 函数部分. var executeBound = function(sourceFunc, boundFunc, cont ...
- underscore.js学习笔记
一.理清概念 1.Underscore封装了常用的JavaScript对象操作方法,用于提高开发效率,Underscore还可以被使用在Node.js运行环境.从API中,你已经可以看出,Unders ...
- 如何应用r.js对requirejs下的js代码合并
1.在根目录新建build.js ({ baseUrl:'js', paths:{ jquery:'static/jquery-1.10.2.min', underscore:'static/unde ...
- 【Knockout.js 学习体验之旅】(3)模板绑定
本文是[Knockout.js 学习体验之旅]系列文章的第3篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...
- underscore.js 源码
underscore.js 源码 underscore]JavaScript 中如何判断两个元素是否 "相同" Why underscore 最近开始看 underscore.js ...
- Underscore.js 的模板功能介绍与应用
Underscore是一个非常实用的JavaScript库,提供许多编程时需要的功能的支持,他在不扩展任何JavaScript的原生对象的情况下提供很多实用的功能,需要了解的朋友可以详细参考下 U ...
随机推荐
- Python3 简单封装 sqlite3 - SimpleToolSql
#coding: utf-8 #Author:boxker #Mail:icjb@foxmail.com import sqlite3 import os class simpleToolSql(): ...
- 标准C++(4)继承
一.继承的作用 若A类继承了B类,可以使A类获得B类中的部分成员变量和成员函数,这能使程序员在已有类的基础上重新定义新的类.继承是类的重要特性,当A类继承了B类,我们称A类为派生类或子类,B类为基类或 ...
- Python爬虫系列-Selenium详解
自动化测试工具,支持多种浏览器.爬虫中主要用来解决JavaScript渲染的问题. 用法讲解 模拟百度搜索网站过程: from selenium import webdriver from selen ...
- 怎样处理jmeter中文乱码
jmeter返回 中文乱码: 1.在jmeter的bin目录下,找到jmeter的配置文件,jmeter.properties,然后把 sampleresult.default.encoding=UT ...
- 前端MVVM模式及其在Vue和React中的体现
MVVM相关概念 Mvvm 前端数据流框架精讲 1) MVVM典型特点是有四个概念:Model.View.ViewModel.绑定器.MVVM可以是单向绑定也可以是双向绑定甚至是不绑定 2) 绑定器: ...
- redis代理集群(Twemproxy)(1)
redis主从+哨兵模式只解决了读的分布式操作,大大提高了性能:但是写操作,只有主主机器才能进行,从机器无法进行写操作.此时,Twemproxy也就出现了. 这个模式单纯的安装有些复杂,需要引入很多的 ...
- day12-迭代器
迭代器的概念 内部含有_next_和_iter_方法的就是迭代器. 可以被for循环的都是可迭代的,只有是可迭代对象,才能用for循环. 可迭代的内部都有_iter_方法——可迭代协议. 只要是迭代器 ...
- SQL登录注册练习
/class User package com.neusoft.bean; public class User { private int password; private String name; ...
- C与C++接口相互调用
转载于:http://blog.csdn.net/lincoln_2012/article/details/50801080 项目中经常使用C和C++混合编程,那么,在调用对方接口时,总是不可避免地出 ...
- nordic芯片开发——烧写方法记录
在开发nordic芯片的时候,分为存外设开发和结合softdevice开发,另外还有结合mbr的开发(这个暂时没有深究)在裸机开发的时候,sdk里面称为blank,把芯片的程序erase之后,直接下载 ...