Hogan的安装和使用
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的安装和使用的更多相关文章
- Nodejs学习笔记(五)--- Express安装入门与模版引擎ejs
目录 前言 Express简介和安装 运行第一个基于express框架的Web 模版引擎 ejs express项目结构 express项目分析 app.set(name,value) app.use ...
- (二)、NodeJS 、Express4安装使用方法
第一步:安装Nodejs 第二步:安装express等部件 1.打开命令窗口,安装express.jade npm install -g express npm install -g express- ...
- Node 之 Express 学习笔记 第一篇 安装
最近由于工作不忙,正好闲暇时间学学基于 node 的 web开发框架. 现在关于web开发框架除了Express 还有新出的 KOA以及其它一些. 但是想想还是先从 Express 入手吧.因为比较成 ...
- 安装4.x版本的express开发框架
错误版本(未更新前的安装方法,更新后就不是这么安装了,好多网上的教程还是这种方法,所以这里先写明了,旧版这里是可以通过的,但是新版4.x就不行了,请用分割线下边的方法) 本文演示在Linux上安装 ...
- Express安装入门与模版引擎ejs
Express安装入门与模版引擎ejs 目录 前言 Express简介和安装 运行第一个基于express框架的Web 模版引擎 ejs express项目结构 express项目分析 app.set ...
- npm 配置和安装 express4.X 遇到的问题及解决
前言:懒得看前面两篇介绍的也可以从本节直接参考,但建议最好了解下,因为 4.X 的express 已经把命令行工具分离出来 (链接https://github.com/expressjs/genera ...
- Express全系列教程之(一):Express的安装 和第一个程序
前言 ndoe.js,一个基于javsscript运行环境的服务器语言,它的出现使得javascript有能力去实现服务器操作.在gitHub上ndoe.js的star数已接近6万,可见其受欢迎程度: ...
- Nodejs学习笔记(五)—Express安装入门与模版引擎ejs
前言 前面也学习了一些Node.js的基本入门知道,现在开始进入Web开发的部分: Node.js提供了http模块,这个模块中提供了一些底层接口,可以直接使用,但是直接开发网站那还是太累了,所以ht ...
- nodeJS学习(3)--- npm 配置和安装 express4.X 遇到的问题及解决
前言:懒得看前面两篇介绍的也可以从本节直接参考,但建议最好了解下,因为 4.X 的express 已经把命令行工具分离出来 (链接https://github.com/expressjs/genera ...
随机推荐
- CodeForces - 1005A-Tanya and Stairways(模拟)
Little girl Tanya climbs the stairs inside a multi-storey building. Every time Tanya climbs a stairw ...
- 51nod1244 莫比乌斯函数之和 杜教筛
虽然都写了,过也过了,还是觉得杜教筛的复杂度好玄学 设f*g=h,∑f=S, 则∑h=∑f(i)S(n/i下取整) 把i=1时单独拿出来,得到 S(n)=(∑h-∑2->n f(i)S(n/i下 ...
- 查询索引range失效
在某一个时间字段加索引,短的时间范围内查询,索引生效,为range.长时间范围,索引失效,查全表. 当索引查的数据量超过全表30%的数据,索引失效,会查全表.
- .Net Core 做请求监控NLog
使用 NLog 给 Asp.Net Core 做请求监控 https://www.cnblogs.com/cheesebar/p/9078207.html 为了减少由于单个请求挂掉而拖垮整站的情况发生 ...
- 如何安装使用windows自带的telnet服务
控制面板->程序和功能->打开或关闭Windows功能->Telnet 客户端 [ Telnet 服务器 ] 安装完成后重启cmd telnet ip port
- POJ 1015 Jury Compromise dp分组
第一次做dp分组的问题,百度的~~ http://poj.org/problem?id=1015 题目大意:在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定.陪审团是由法官从公众中挑选的.先随机挑 ...
- 《从0到1学习Flink》—— Flink 配置文件详解
前面文章我们已经知道 Flink 是什么东西了,安装好 Flink 后,我们再来看下安装路径下的配置文件吧. 安装目录下主要有 flink-conf.yaml 配置.日志的配置文件.zk 配置.Fli ...
- clickhouse源码Redhat系列机单机版安装踩坑笔记
前情概要 由于工作需要用到clickhouse, 这里暂不介绍概念,应用场景,谷歌,百度一大把. 将安装过程踩下的坑记录下来备用 ClickHouse源码 git clone安装(直接下载源码包安装失 ...
- Spring Cloud--Feign服务调用组件的使用实例
引入依赖: 启动类上添加@EnableFeignClients注解: 写调用接口: 直接@Autowired注入服务调用接口: 底层使用了动态代理,对接口进行了实现. 并且封装了RestTemplat ...
- 设置Cookie最大存活时间
Cookie和Session都是由Tomcat自动创建的对象,Cookie的默认最大存活时间是 -1 ,即当浏览器关闭时Cookie就消失了:Session的默认最大存活时间是30分钟. 使用Sess ...