Advanced templating: illustrates defines and includes.

Include external snippet defined in a variable:
{{#def.externalsnippet}} Load external template from a file:
{{#def.loadfile('/snippet.txt')}} Load external template from a file and cache in a variable:
{{#def['snippet.txt'] || (def['snippet.txt'] = def.loadfile('/snippet.txt'))}} Use cached file again:
{{#def['snippet.txt']}} Here is a def block that will be used later. This snippet can be referenced from external templates too:
{{##def.snippet1:
Some snippet that will be included {{#def.a}} later {{=it.f1}}
#}} First use of snippet1:
{{#def.snippet1}} Second use of snippet1:
{{#def.snippet1}} Include snippet1 if true:
{{# true && def.snippet1 }} Runtime and Compile time evaluation used together:
{{= it.f3 + {{#def.a + def.b}} }} Include xyz or insert 'not found':
{{#def.xyz || 'not found'}} Set xyz to and exclude result from output:
{{##def.xyz=#}} is identical to {{#(def.xyz=) && ""}} Compare xyz to , show 'xyz is not 1' if false:
{{#def.xyz === || 'xyz is not 1'}} {{ if ({{#!def.abc}}) { }}
{{#def.abc}} is falsy
{{ } }} {{ if ({{#def.xyz === }}) { }}
if(true) block
{{ } }} {{##def.fntest = function() {
return "Function test worked!";
}
#}} {{#def.fntest()}} Conditionals:
{{? !it.altEmail }}
<p>
second email: {{= it.altEmail }}
</p>
{{?? true }}
else case worked
{{?}} Array iterators
{{~ it.farray :p }}
<h1>{{=p.farray}}<h1>
{{~ p.farray :value:i }}
<h2>{{=i}}: {{=value}}</h2>
{{~ value :w }}
<h3>{{=w}}</h3>
{{~}}
{{~}}
{{~}} {{~ ["apple", "banana", "orange"] :k}}
{{=k}}
{{~}} {{~ (function(){ return [,,]})() :k}}
{{=k}}
{{~}} {{ function children(it) { }} {{?it.Nodes.length}}
<ul>
{{~ it.Nodes :p}}
<li>
{{=p.title}}
{{children(p);}}
</li>
{{~}}
</ul>
{{?}} {{ } }} {{ children( {Nodes:[ {title:"1.1", Nodes:[ {title:"1.1.1", Nodes:[]}, {title:"1.1.2", Nodes:[]}] }, { title:"1.2", Nodes:[]}, { title:"1.3", Nodes:[]}], title:"" } ); }} {{##def.block:param:
<div>{{=param}}</div>
#}} {{##def.block1:param:
<div>{{=param.a}}</div>
#}} {{#(def.block:'text' || '') + def.block:}} {{#def.block:it.f3 || ''}} {{#def.block:"lala tralala" || ''}} {{#def.block1:{a:, b:} || ''}} {{##def.testFunctionWithParam = function(str) {
return "My name is: " + str;
}
#}} {{##def.mytestparam: {{=it.name}} #}}
{{#def.testFunctionWithParam(def.mytestparam)}} {{#def.testFunctionWithParam("\{\{=it.name\}\}")}} {{##def.testParamDef:myparam:
My name is: {{=myparam}}
#}} {{#def.testParamDef:it.name}} The end

doT学习(二)之用法集合的更多相关文章

  1. hibernate学习二 基本用法

    一  映射文件User.hbm.xml 定义了持久化类实例是如何存储和加载的,这个文件定义了持久化类和表的映射. 根据映射文件,Hibernate可以生成足够的信息以产生所有的SQL语句,也就是类的实 ...

  2. python学习博客地址集合。。。

    python学习博客地址集合...   老师讲课博客目录 http://www.bootcdn.cn/bootstrap/  bootstrap cdn在线地址 http://www.cnblogs. ...

  3. 大数据技术之_16_Scala学习_08_数据结构(下)-集合操作+模式匹配

    第十一章 数据结构(下)-集合操作11.1 集合元素的映射-map11.1.1 map 映射函数的操作11.1.2 高阶函数基本使用案例1+案例211.1.3 使用 map 映射函数来解决11.1.4 ...

  4. 学习javascript数据结构(三)——集合

    前言 总括: 本文讲解了数据结构中的[集合]概念,并使用javascript实现了集合. 原文博客地址:学习javascript数据结构(三)--集合 知乎专栏&&简书专题:前端进击者 ...

  5. Object C学习笔记22-#define 用法

    上一篇讲到了typedef 关键字的使用,可以参考文章 Object C 学习笔记--typedef用法 .而在c中还有另外一个很重要的关键字#define. 一. #define 简介 在C中利用预 ...

  6. DjangoRestFramework学习二之序列化组件、视图组件 serializer modelserializer

      DjangoRestFramework学习二之序列化组件.视图组件   本节目录 一 序列化组件 二 视图组件 三 xxx 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 序列化组 ...

  7. Python操作redis学习系列之(集合)set,redis set详解 (六)

    # -*- coding: utf-8 -*- import redis r = redis.Redis(host=") 1. Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合 ...

  8. 学习笔记 07 --- JUC集合

    学习笔记 07 --- JUC集合 在讲JUC集合之前我们先总结一下Java的集合框架,主要包含Collection集合和Map类.Collection集合又能够划分为LIst和Set. 1. Lis ...

  9. Redis学习系列五Set(集合)

    一.简介 Redis中的Set(集合)相当于C#中的HashSet,它内部的键值对时无序的.唯一的.用过Dictionary的都知道,Dictionary都知道,里面的每个键值对肯定是唯一的,因为键不 ...

  10. day 90 DjangoRestFramework学习二之序列化组件

      DjangoRestFramework学习二之序列化组件   本节目录 一 序列化组件 二 xxx 三 xxx 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 序列化组件 首先按照 ...

随机推荐

  1. apply,call,bind函数作用与用法

    作用 可以把方法借给其它对象使用,并且改变this的指向 a.apply(b,[3,2]);//this指向由a变为b, a的方法借给b使用 实例: function add(a,b){       ...

  2. Java常考面试题整理(一)

    1.什么是java虚拟机?为什么java被称作是"平台无关的编程语言". 参考答案: java虚拟级是一个可以执行java字节码的虚拟机进程,java源文件被编译成能被java虚拟 ...

  3. C++入门经典-例5.1-输出变量的指针

    1:代码如下: // 5.1.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using ...

  4. 15个流行的python框架

    Django: Python Web应用开发框架 Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响.Django是走大而全的方向,它最出名的是其全自动化的管理后台: ...

  5. 牛客 19-5-3 QAQ

    #include<iostream> #include<cstring> using namespace std; typedef long long LL; int main ...

  6. LeetCode 337. 打家劫舍 III(House Robber III)

    题目描述 小偷又发现一个新的可行窃的地点. 这个地区只有一个入口,称为“根”. 除了根部之外,每栋房子有且只有一个父房子. 一番侦察之后,聪明的小偷意识到“这个地方的所有房屋形成了一棵二叉树”. 如果 ...

  7. oracle delete 数据恢复

    /*1.FLASHBACK QUERY*/ --闪回到15分钟前 select *  from orders  as of timestamp (systimestamp - interval ''1 ...

  8. mysql数据库简单补充

    1.只有拥有特定权限的用户才能执行特定的操作.就好像我们在现实生活中,一般没有权利进入军事禁区,除非我们被某个很有权利并且可以指定其他人进入军事基地的人赋予了进入军事禁区的权利. 命令: GRANT ...

  9. MyBatis如何传入多个参数

    一.单个参数 mapper public List<Test> getTestList(String id); xml <select id = "getTestList& ...

  10. 【flask】flask项目配置 app.config

    [理论] 在很多情况下,你需要设置程序的某些行为,这时你就需要使用配置变量.在Flask中,配置变量就是一些大写形式的Python变量, 你也可以称之为配置参数或配置键.使用统一的配置变量可以避免在程 ...