详解Node.js模板引擎Jade入门

2020-06-17 07:19:16易采站长站整理

-for (var i = 0; i < arr.length; i++)
li
span= i
span!= "unescaped:" + arr[i] + "vs."
span= "escaped:" + arr[i]

生成的代码如下:


<ul>
<li><span>0</span><span>unescaped: <a>vs. </span><span>escaped: <a></span></li>
<li><span>1</span><span>unescaped: <b>vs. </span><span>escaped: <b></span></li>
<li><span>2</span><span>unescaped: <c>vs. </span><span>escaped: <c></span></li>
</ul>

模板引擎Jade和Handlebars的一个主要的区别就是: Jade允许在代码里写几乎所有的JavaScript ; 但是,Handlebars则限制了开发人员只能使用少量的内置和自定义的helpers。

9、注释

Jade的注释有两种:

<1>. 输出到页面的——“//”
<2>. 不输出到页面的—— “//-”


// 普通注释,会输出到渲染后生成的HTML页面
p Hello Jade content

//- 特殊注释,不会输出到HTML页面
p (id="footer") copyright 2016

输出:


<!-- 普通注释,会输出到渲染后生成的HTML页面 -->
<p> Hello Jade content </p>

<p id="footer">copyright 2016</p>

10、if 语句

给if语句加个前缀-,这样就可以写标准的JavaScript代码了; 也可以不用前缀、不用括号,当然后者更简洁。


- var user = {}
- user.admin = Math.random() > 0.5

if user.admin
button(class = "launch") Launch Spacecraft
else
button(class = "login") Log in

此外,还有unless, 它相当于不或者!。

注意: 每行的代码结尾处并没有分号“;”

11、each语句

在Jade里迭代很简单,只需要使用each语句就行了。


- var language = ['JavaScript', 'Node', 'Python', 'Java']div
each value, index in language
p= index + "," + value

输出:


<div>
<p>0. JavaScript</p>
<p>1. Node</p>
<p>2. Python</p>
<p>3. Java</p>
</div>

示例2:


- var language = ['JavaScript': -1, 'Node': 2, 'Python': 3, 'Java': 1]

div
each value, key in languages
p= key + ":" + value

输出:


<div>
<p>JavaScript: -1</p>
<p>Node: 2</p>