Hogan的安装和使用


通过npm安装hogan:

npm install hogan.js --save-dev

CommonJs下的使用方式:

// 引入hogan
var hogan = require('hogan.js'); // 渲染所需模板
var template = '<div>Hey! I am {{name}}!</div>'; // 渲染所需数据
var data = {
name : 'Rosen'
}; // 模板的编译
var compiledTemplate = hogan.compile(template); // 模板的渲染
var result = compiledTemplate.render(data); // 输出结果
console.log(result); // output: <div>Hey! I am Rosen!</div>

这里要注意一下,npm里还有一个叫hogan的组件,是对hogan.js做的一个套壳的包装,同学们如果使用hogan出错的话,可以换成这里的hogan.js,还是原厂的好!除了引用名称,其他用法都是完全一样的。

Hogan语法


{{name}}

// 数据:
{ name : 'Rosen' }; // 模板:
<div>Hey! I am {{name}}!</div> // 结果:
<div>Hey! I am Rosen!</div>

这就是读取一个变量,假如name是个html片段,这里会对html编码,如果放到dom里,就显示成了一段html代码。

{{{name}}}

// 数据:
{ name : '<span color="red">Rosen</span>' }; // 模板
<div>Hey! I am {{{name}}}!</div> // 结果
<div>Hey! I am <span color="red">Rosen</span>!</div>

大括号能怎么样?还是读取一个变量,只不过name是个html片段的话,这里不对html编码,放在dom里就是一段dom。

{{#list}} {{/list}}

这个老复杂了,是个循环呢,吓死老衲了!当然#标记还可以当做bool型的判断。

// 数据:
{
list : [
{name : 'Rosen'},
{name : 'JIM'}
],
isRosen : true
} // 数组型用法:
{{#list}}
<span>{{name}}</span>
{{/list}} // bool型用法:
{{#isRosen}}我就是Rosen啊!{{/isRosen}} // 数组型结果:
<span>Rosen</span><span>JIM</span> // bool型结果:
我就是Rosen啊!

{{^list}} {{/list}}

这货和上一个是相反的,就是非的逻辑。如果列表为空,或者非真值都会进这个分支,其中包括false,null,undefined,0什么的。

// 数据:
{
list : [],
isRosen : false
} // 数组型用法:
{{^list}}
这列表抠搜的,啥玩意都没有!
{{/list}} // bool型用法:
{{^isRosen}}谁是Rosen? 不认识!{{/isRosen}} // 数组型结果:
这列表抠搜的,啥玩意都没有! // bool型结果:
谁是Rosen? 不认识!

{{.}}

代表枚举类型里的当前元素,枚举类型没有索引名,只能用{{.}}

// 数据:
{
list : ['Rosen', 'JIM']
} // {{.}}用法:
{{#list}}
<span>{{.}}</span>
{{/list}} // 结果:
<span>Rosen</span><span>JIM</span>

{{!}}

我就是个注释,知道你们都不乐意用我

// 用法:
{{! 楼下是二货}}
<span>我最厉害!</span> // 执行结果:
<span>我最厉害!</span>

这些就是hogan的常用语法,还有个引入片段的语法基本用不到,这里就不讲了。

然后会是什么呢?然后就没有然后了,就这些!

总结:Hogan,不就这么几句


{{data}} 转义的变量

{{{data}}} 不转义的变量

{{#list}} {{/list}} 列表循环 / 真值判断

{{^list}} {{/list}} 空列表 / 非真值判断

{{.}} 枚举的当前元素

{{!}} 我是注释

作者: Rosen_Gao 
链接:http://www.imooc.com/article/18493
来源:慕课网

Hogan的安装和使用的更多相关文章

  1. Nodejs学习笔记(五)--- Express安装入门与模版引擎ejs

    目录 前言 Express简介和安装 运行第一个基于express框架的Web 模版引擎 ejs express项目结构 express项目分析 app.set(name,value) app.use ...

  2. (二)、NodeJS 、Express4安装使用方法

    第一步:安装Nodejs 第二步:安装express等部件 1.打开命令窗口,安装express.jade npm install -g express npm install -g express- ...

  3. Node 之 Express 学习笔记 第一篇 安装

    最近由于工作不忙,正好闲暇时间学学基于 node 的 web开发框架. 现在关于web开发框架除了Express 还有新出的 KOA以及其它一些. 但是想想还是先从 Express 入手吧.因为比较成 ...

  4. 安装4.x版本的express开发框架

    错误版本(未更新前的安装方法,更新后就不是这么安装了,好多网上的教程还是这种方法,所以这里先写明了,旧版这里是可以通过的,但是新版4.x就不行了,请用分割线下边的方法)   本文演示在Linux上安装 ...

  5. Express安装入门与模版引擎ejs

    Express安装入门与模版引擎ejs 目录 前言 Express简介和安装 运行第一个基于express框架的Web 模版引擎 ejs express项目结构 express项目分析 app.set ...

  6. npm 配置和安装 express4.X 遇到的问题及解决

    前言:懒得看前面两篇介绍的也可以从本节直接参考,但建议最好了解下,因为 4.X 的express 已经把命令行工具分离出来 (链接https://github.com/expressjs/genera ...

  7. Express全系列教程之(一):Express的安装 和第一个程序

    前言 ndoe.js,一个基于javsscript运行环境的服务器语言,它的出现使得javascript有能力去实现服务器操作.在gitHub上ndoe.js的star数已接近6万,可见其受欢迎程度: ...

  8. Nodejs学习笔记(五)—Express安装入门与模版引擎ejs

    前言 前面也学习了一些Node.js的基本入门知道,现在开始进入Web开发的部分: Node.js提供了http模块,这个模块中提供了一些底层接口,可以直接使用,但是直接开发网站那还是太累了,所以ht ...

  9. nodeJS学习(3)--- npm 配置和安装 express4.X 遇到的问题及解决

    前言:懒得看前面两篇介绍的也可以从本节直接参考,但建议最好了解下,因为 4.X 的express 已经把命令行工具分离出来 (链接https://github.com/expressjs/genera ...

随机推荐

  1. CodeForces - 1005A-Tanya and Stairways(模拟)

    Little girl Tanya climbs the stairs inside a multi-storey building. Every time Tanya climbs a stairw ...

  2. 51nod1244 莫比乌斯函数之和 杜教筛

    虽然都写了,过也过了,还是觉得杜教筛的复杂度好玄学 设f*g=h,∑f=S, 则∑h=∑f(i)S(n/i下取整) 把i=1时单独拿出来,得到 S(n)=(∑h-∑2->n f(i)S(n/i下 ...

  3. 查询索引range失效

    在某一个时间字段加索引,短的时间范围内查询,索引生效,为range.长时间范围,索引失效,查全表. 当索引查的数据量超过全表30%的数据,索引失效,会查全表.

  4. .Net Core 做请求监控NLog

    使用 NLog 给 Asp.Net Core 做请求监控 https://www.cnblogs.com/cheesebar/p/9078207.html 为了减少由于单个请求挂掉而拖垮整站的情况发生 ...

  5. 如何安装使用windows自带的telnet服务

    控制面板->程序和功能->打开或关闭Windows功能->Telnet 客户端 [ Telnet 服务器 ] 安装完成后重启cmd telnet ip port

  6. POJ 1015 Jury Compromise dp分组

    第一次做dp分组的问题,百度的~~ http://poj.org/problem?id=1015 题目大意:在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定.陪审团是由法官从公众中挑选的.先随机挑 ...

  7. 《从0到1学习Flink》—— Flink 配置文件详解

    前面文章我们已经知道 Flink 是什么东西了,安装好 Flink 后,我们再来看下安装路径下的配置文件吧. 安装目录下主要有 flink-conf.yaml 配置.日志的配置文件.zk 配置.Fli ...

  8. clickhouse源码Redhat系列机单机版安装踩坑笔记

    前情概要 由于工作需要用到clickhouse, 这里暂不介绍概念,应用场景,谷歌,百度一大把. 将安装过程踩下的坑记录下来备用 ClickHouse源码 git clone安装(直接下载源码包安装失 ...

  9. Spring Cloud--Feign服务调用组件的使用实例

    引入依赖: 启动类上添加@EnableFeignClients注解: 写调用接口: 直接@Autowired注入服务调用接口: 底层使用了动态代理,对接口进行了实现. 并且封装了RestTemplat ...

  10. 设置Cookie最大存活时间

    Cookie和Session都是由Tomcat自动创建的对象,Cookie的默认最大存活时间是 -1 ,即当浏览器关闭时Cookie就消失了:Session的默认最大存活时间是30分钟. 使用Sess ...