dot.js简单入门

doT.js是一个轻量简单的模板输出js. 下面介绍一下它的基本用法。
1.输出   基本输出:{{= }}     原样输出:{{! }}

<div id="info"></div>
<script id="dot-template" type="text/x-dot-template">
  <p>name:{{=it.name}}</p>
  <p>age:{{=it.age}}</p>
  <p>{{=it.html}}</p>
  <p>{{!it.html}}</p>
</script>
<script type="text/javascript">
  var dataJSON = {"name": "AlanJ", "age": "20", "html": "<div style=‘background: #f00; height: 30px; line-height: 30px;‘>html元素</div>"};
  var html = doT.template(document.getElementById("dot-template").text)(dataJSON);
  document.getElementById("info").innerHTML = html;
</script>

2.判断 if:{{? }}   else if:{{??}}

<div id="info"></div>
<script id="dot-template" type="text/x-dot-template">
  <p>name:{{=it.name}}</p>
  <p>score:{{=it.score}}</p>
  {{? it.score < 60}}
  <p>不及格</p>
  {{?? it.score < 80}}
  <p>及格</p>
  {{??}}
  <p>优秀</p>
  {{?}}
</script>
<script type="text/javascript">
  var dataJSON = {"name": "AlanJ", "score": "100"};
  var html = doT.template(document.getElementById("dot-template").text)(dataJSON);
  document.getElementById("info").innerHTML = html;
</script>

3.循环  for each {{~it :item:index}}  {{~}}    for in: {{for (var index in it){ }}  {{ } }}

-------------------------------------for each----------------------------------------------
<ul id="info1"></ul>
-------------------------------------for in----------------------------------------------
<ul id="info2"></ul>
<script id="dot-template1" type="text/x-dot-template">
  {{~it :item:index}}
  <li>
  	<p>index:{{=index + 1}}</p>
  	<p>name:{{=item.name}}</p>
	<p>age:{{=item.age}}</p>
  </li>
  {{~}}
</script>
<script id="dot-template2" type="text/x-dot-template">
  {{for (var index in it){ }}
  <li>
	<p>index:{{=index + 1}}</p>
	<p>name:{{=it[index].name}}</p>
	<p>name:{{=it[index].age}}</p>
  </li>
  {{}}}
</script>
<script type="text/javascript">
  var dataJSONArray = [{"name": "AlanJ", "age": "20"}, {"name": "Jack", "age": "40"}, {"name": "ClearLove", "age": "60"}];
  var html1 = doT.template(document.getElementById("dot-template1").text)(dataJSONArray);
  document.getElementById("info1").innerHTML = html1;
  var html2 = doT.template(document.getElementById("dot-template2").text)(dataJSONArray);
  document.getElementById("info2").innerHTML = html2;
</script>

4.partials (个人理解:部分拼接 )  全:{{##def.snippet:{{#def.joke}}#}}{{#def.snippet}} 简:{{#def.joke}}

<div id="info"></div>
<script id="dot-template" type="text/x-dot-template">
<div>{{=it.name}}</div>
  {{##def.snippet:
  {{#def.joke}}
  #}}
  {{#def.snippet}}  

  {{#def.joke}}
</script>
<script type="text/javascript">
  var dataJSON ={"name":"AlanJ"};
  var defPart = {"joke":"<div>{{=it.name}} who?</div>"};
  var html = doT.template(document.getElementById("dot-template").text, null, defPart)(dataJSON);
  document.getElementById("info").innerHTML = html;
</script>

出处:https://0qingfeideyi0.iteye.com/blog/2274741

参考文档:http://olado.github.io/doT/

源代码:https://github.com/olado/doT

原文地址:https://www.cnblogs.com/aten/p/9572130.html

时间: 2024-10-24 01:02:06

dot.js简单入门的相关文章

doT js模板入门 2

doT js 使用{{}} 非常类似于JSP,所以用起来感觉很亲切,很顺手 {{–><% }}–>%> 例如: <div id="evaluationtmpl"> {{ for(var prop in it) { }} <div>KEY:{{= prop }}---VALUE:{{= it[prop] }}</div> {{ } }} </div> 是不是很像: <div id="evaluatio

doT js模板入门 3

for 循环前判断循环的list是否为空 <script id="invoiceListDot" type="text/x-dot-template"> {{? it.invoiceInfoDtos}} {{ for(var prop=0;prop <it.invoiceInfoDtos.length ; prop++){ }} <div class="{{ if(prop==0){}}invoice-infor {{ }else

doT js模板入门

doT.js github地址: doT.js 官方网站 实例1:简单 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="../../doT.js"></scr

JS简单入门教程

JS简单教程 使用方法:放到任意html页面的head标签下 Test1方法弹出当前时间对话框 Test2方法for循环输出 Test3方法for(…in…)输出数组内容 <script type="text/javascript"> var a = 10; var b = 11; if (a < b) { document.write("hello man") } else { document.write("hello world&q

Backbone.js简单入门范例

11年刚开始用前端MVC框架时写过一篇文章,当时Knockout和Backbone都在用,但之后的项目全是在用Backbone,主要因为它简单.灵活,无论是富JS应用还是企业网站都用得上.相比React针对View和单向数据流的设计,Backbone更能体现MVC的思路,所以针对它写一篇入门范例,说明如下: 1. 结构上分4节,介绍Model/View/Collection,实现从远程获取数据显示到表格且修改删除:2. 名为“范例”,所以代码为主,每节的第1段代码都是完整代码,复制粘贴就能用,每

angular.js简单入门。

小弟刚接触angular js  就写了一个简单的入门.后续慢慢补... 首先看 html 页面. <html> <meta charset="UTF-8"> <head> <title>angularJS</title> </head> <script type="text/javascript" src="./js/angular.min.js"></s

Vue.js简单入门

这篇文章我们将学习vue.js的基础语法,对于大家学习vue.js具有一定的参考借鉴价值,有需要的朋友们下面来一起看看. Vue.js是一个数据驱动的web界面库.Vue.js只聚焦于视图层,可以很容易的和其他库整合.代码压缩后只有24kb. 以下代码是Vue.js最简单的例子, 当 input 中的内容变化时,p 节点的内容会跟着变化. <!-- html --> <div id="demo"> <p>{{message}}</p> &

anime.js 简单入门教程

anime.js是一个强大的用来制作动画的javascript库,虽然功能没有GASP(greensock)强大,但胜在它足够轻便,gzip压缩完只有9kb左右,麻雀虽小,却五脏俱全. 下面就来看看如何使用anime.js来编写动画效果. 先在github下载好anime.js,然后在页面引入它. 弹球效果 引入anime.js后,就可以开始来编写动画效果. 首先来编写一个弹球的动画效果,先来使用anime.js提供的方法来编写好基本的结构: var bouncingBall = anime({

require.js简单入门

推荐文章:http://www.ruanyifeng.com/blog/2012/11/require_js.html 1.以下例子主要实现功能, 1)引用jq库获取dom中元素文本, 2)实现并引用去空格工具类trim, 3)最后获取文本并去掉空格后输出, 4)打包js(将所有js文件打包成main.min.js) 1.下载require文件 require.js require主文件 r.js require优化器文件 2.文件结构 index.html --js文件夹 jquery.js