代码
Jade目前支持三种类型的可执行代码。第一种是前缀-
, 这是不会被输出的:
- var foo = 'bar';
这可以用在条件语句或者循环中:
- for (var key in obj)
p= obj[key]
由于Jade的缓存技术,下面的代码也是可以的:
- if (foo)
ul
li yay
li foo
li worked
- else
p oh no! didnt work
哈哈,甚至是很长的循环也是可以的:
- if (items.length)
ul
- items.forEach(function(item){
li= item
- })
所以你想要的!
下一步我们要转义输出的代码,比如我们返回一个值,只要前缀一个=
:
- var foo = 'bar'
= foo
h1= foo
它会渲染为bar<h1>bar</h1>
. 为了安全起见,使用=
输出的代码默认是转义的,如果想直接输出不转义的值可以使用!=
:
p!= aVarContainingMoreHTML
Jade 同样是设计师友好的,它可以使javascript更直接更富表现力。比如下面的赋值语句是相等的,同时表达式还是通常的javascript:
- var foo = 'foo ' + 'bar'
foo = 'foo ' + 'bar'
Jade会把 if
, else if
, else
, until
, while
, unless
同别的优先对待, 但是你得记住它们还是普通的javascript:
if foo == 'bar'
ul
li yay
li foo
li worked
else
p oh no! didnt work