使用 underscore.js 模块解析

Underscore提供了一个轻量级的模板解析函数,它可以帮助我们有效地组织页面结构和逻辑。

实例:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>  <title></title>  <script src="Scripts/underscore.js"></script>  <script src="Scripts/jquery-1.11.1.min.js"></script>
</head>
<body>  <!-- 用于显示渲染后的标签 -->  <ul id="element"></ul>  <!-- 定义模板,将模板内容放到一个script标签中 -->  <script type="text/template" id="tpl">  <% for(var i = 0; i < list.length; i++) { %>  <% var item = list[i] %>  <li>  <span><%=item.firstName%> <%=item.lastName%></span>  <span><%-item.city%></span>  </li>  <% } %>  </script>  <script type="text/javascript">  // 获取渲染元素和模板内容  var element = $('#element'),  tpl = $('#tpl').html();  // 创建数据, 这些数据可能是你从服务器获取的  var data = {  list: [  { firstName: '<a href="#">Zhang</a>', lastName: 'San', city: 'Shanghai' },  { firstName: 'Li', lastName: 'Si', city: '<a href="#">Beijing</a>' },  { firstName: 'Wang', lastName: 'Wu', city: 'Guangzhou' },  { firstName: 'Zhao', lastName: 'Liu', city: 'Shenzhen' }  ]  }  // 解析模板, 返回解析后的内容    var render = _.template(tpl);    var html = render(data);    // 将解析后的内容填充到渲染元素    element.html(html);   </script>
</body>
</html>

 

在本例中,我们将模板内容放到一个<script>标签中,你可能已经注意到标签的type是text/template而不是text/javascript,因为它无法作为JavaScript脚本直接运行。
我也建议你将模板内容放在<script>中,因为如果你将它们写在一个<div>或其它标签中,它们可能会被添加到DOM树中进行解析(即使你隐藏了这个标签也无法避免)。
.template模板函数只能解析3种模板标签(这比Smarty、JSTL要简单得多):

<%  %>:用于包含JavaScript代码,这些代码将在渲染数据时被执行。
<%= %>:用于输出数据,可以是一个变量、某个对象的属性、或函数调用(将输出函数的返回值)。
<%- %>:用于输出数据,同时会将数据中包含的HTML字符转换为实体形式(例如它会将双引号转换为&quot;形式),用于避免XSS攻击。

当我们希望将数据中的HTML作为文本显示出来时,常常会使用<%- %>标签。
Underscore还允许你修改这3种标签的形式,如果我们想使用{% %}、{%= %}、{%- %}作为标签,可以通过修改templateSettings来实现,就像这样: 
_.templateSettings = {    evaluate : /\{%([\s\S]+?)\%\}/g,    interpolate : /\{%=([\s\S]+?)\%\}/g,    escape : /\{%-([\s\S]+?)%\}/g
}

.

转载于:https://www.cnblogs.com/crazycode2/p/6911383.html

mui 根据 json 数据动态创建列表相关推荐

  1. animate方法 jQuery中元素的创建 创建十个p标签 创建列表 动态创建列表

    animate方法 <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...

  2. vue 渲染JSON数据动态生成表格组件

    vue 通过渲染JSON数据动态生成表头及对应表格内容组件 <template><div id="viewDialog"><el-button typ ...

  3. JavaScript基础 实现动态创建列表

    js基础 获取元素的六种方式 : 1.通过ID获取 获取单个元素2.通过类名获取 取多个元素3.通过标签名获取 获取多个元素4.通过name名获取 获取多个元素5.通过querySelector()获 ...

  4. Java 接收返回json数据动态取data里的值

    json数据 data: {} {"code":200,"data":{"accountNonExpired":true,"acc ...

  5. jsp页面根据json数据动态生成table

    根据需求由于不同的表要在同一个jsp展示,点击某个表名便显示某张表内容,对于java后台传给jsp页面的json形式的数据是怎么动态生成table的呢? 找了好久,终于找到某位前辈的答案,在此表示衷心 ...

  6. layui做折线图_详解layuiAdmin单页版根据后台json数据动态生成左侧菜单栏

    layuiAdmin单页版根据后台 使用模板方式加载菜单 lay-url="菜单接口" lay-headers="将token带入请求头",如果没有,去掉就行 ...

  7. html根据数据动态创建表格,HTML DOM动态创建表格(1)

    table, td, th { border:1px solid black; color: red; } var txt = '[\ {\ "id":1,\ "name ...

  8. Vue根据菜单json数据动态按需加载路由Vue-router

    每个菜单项对应一个页面组件,根据菜单项动态按需加载路由 路由配置的正确写法: /*router/index.js*/ import Vue from 'vue' import Router from ...

  9. python列表动态添加_在Python中动态创建列表

    我有一堆与不同组关联的项,我最终想为每个组创建一个列表,其中包含所有关联项.在 问题是我不知道有多少组,所以如何动态生成正确数量的列表,以及如何调用它们?在 我在循环item_list和group_l ...

最新文章

  1. 激动~这是我看到的最好的目标检测RCNN了!
  2. Android中与Intent相关的还有,Android中Intent的相关用法
  3. jQuery 第二章
  4. 深入理解Java类型信息(Class对象)与反射机制
  5. 一篇文章带你从认识Python装饰器到熟练使用
  6. 一文搞懂重复测量资料分析
  7. ASP.NET Core 2.1 : 十一. 如何在后台运行一个任务
  8. c++ new, operator new, placement new
  9. 定期定量采购_采购的四种方法
  10. 如何使用xp_cmdshell扩展过程
  11. HBase的JavaAPI使用
  12. WSL自定义安装路径
  13. Js中去除数组中重复元素的4种方法
  14. iOS流布局UICollectionView系列四——自定义FlowLayout进行瀑布流布局
  15. Java代码发送post请求工具类
  16. win7资源监视器介绍
  17. 2019年云计算发展趋势如何 怎么加入云计算行业
  18. 美通社日历 | 媒体关注、会展信息、企业财报发布,节假日备忘(8月31日—9月6日)...
  19. figma button_Figma镜子的实时移动ui ux原型
  20. IOS马甲包的那点事

热门文章

  1. 学习使用资源文件[9] - WAVE 资源
  2. KlayGE 4.2开发计划
  3. 用户态下init进程1的执行
  4. 原生html js css绘制折现图,HTML5教程 Chart.js自定义提示折线图
  5. 想轻松入门Python编程,这10个经典案例你还不知道嘛?
  6. c语言spi发送12位数据,【51单片机】普通I/O口模拟SPI口C语言程序
  7. burpsuite 设置https_新手教程:如何使用Burpsuite抓取手机APP的HTTPS数据
  8. python输出质数序列_用python打印素数序列
  9. idea springmvc_手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
  10. jq 修改swal的标题_js-jquery-SweetAlert【一】使用